
MariaDB作为MySQL的优秀分支,凭借高性能、开源免费及丰富的特性(如更优的存储引擎、更强的扩展性),成为众多开发者的数据库首选。
本文将带你通过Docker容器化方式,快速安装和部署MariaDB数据库,并手把手教你如何创建数据库、设计数据表,以及如何创建新用户并精确授予数据库的读写权限,帮助你在开发中轻松管理数据存储与访问安全。
1、拉取最新mariadb镜像
docker pull mariadb
2、创建并运行mariadb容器
这里我们启动mariadb_test容器,并将容器的3306端口映射到主机的13306端口,设置root用户密码为Abcd-143,同时创建一个appuser用户,并设置其密码为Bcd-323,将容器的数据目录/var/lib/mysql映射到宿主的/data/madiarb_data目录,运行以下命令:
docker run --name mariadb_test \-v /data/madiarb_data:/var/lib/mysql \-p 13306:3306 -e MYSQL_ROOT_PASSWORD=Abcd-143 \-e MYSQL_USER=appuser -e MYSQL_PASSWORD=Bcd-323 \-e MYSQL_ROOT_HOST=% \-d mariadb注意:默认情况下,docker容器在停止或者删除后,数据文件也会删除,对于数据库容器而言这是不可取的,所以使用docker volume功能,将容器内的数据目录映射到宿主目录,实现数据的持久化。
3、登录数据库验证
mariadb -uroot -p输入root密码后进入mariadb的命令行界面

4、创建一个数据库和表用于测试
4.1 创建数据库company
create database company;
确认数据库创建成功:
show databases;
切换到刚创建的数据库:
use company
4.2 创建employee表
上一步我们创建了一个company数据库,这一步我们在此数据库创建一个名为 empolyee的表,记录员工信息:
CREATETABLE employee(idINT AUTO_INCREMENT PRIMARY KEY,nameVARCHAR(50) NOTNULL, age INT, org VARCHAR(20), score DECIMAL(5,2));查看表结构,确认创建成功

为了后面测试,这里批量插入6条数据记录:
INSERTINTOemployee (name, age, org, score) VALUES ('张三', 18, 'IT', 85.5), ('李四', 17, 'IT', 92.0), ('王五', 18, 'Finance', 78.5), ('赵六', 17, 'HR', 88.0), ('小明', 18, 'hr', 95.5), ('小芳', 17, 'Finance', 87.5);5、用户和权限管理
5.1用户管理
创建用户appuser并授予数据库company的增删改查权限:
创建用户:createuser'appuser'@'%'IDENTIFIEDBY'dwdm@234';appuser:用户名%:数据库访问限制,可以是网段,如果限制只本地访问:localhost,如果无限制使用%。dwdm@234:访问密码查询已创建用户:select Host,User,Passwordfrom mysql.user;删除用户:dropuser'appuser'@'%';修改密码:alteruser'appuser'@'%'identifiedby'dfds@321';
查询当前在线用户:
showprocesslist;
上一步我们创建了用户appuser,那这个用户对哪些数据库和表,以及对库和表有哪些权限(select、delete、update、insert等),这个就可以通过授权实现。
GRANT ALL ON company.* to'appuser'@'localhost'; 仅授予appuser用户对数据库company的本地所有操作权限。GRANT ALL ON company.employee to'appuser'@'%'; 授予appuser数据库company的表employee的远程操作所有权限。GRANTinsert,delete,select,updateON company.* to'appuser'@'%'; 授予appuser用户对数据company的增删改查的远程操作权限。授予测试用户appuser对数据库company的所有权限,如果只授予某个表的权限,使用表名替换*即可。
grant all on company.* to'appuser'@'%';刷新权限:flushprivileges;
showgrantsfor root;showgrantsfor appuser;
撤销权限:revoke all on *.* from"appuser"@"%";只撤销删除权限:revokedeleteon company.* from'appuser'@'%';
总结:
通过本文的保姆级图文教程,你已经从零掌握了 MariaDB 数据库的容器化安装、数据库与表的创建,以及用户权限的完整管理流程。现在,你可以自信地搭建自己的数据库环境,并开始实践数据操作了。动手试试吧,数据库的世界等你探索!
夜雨聆风