Docker 安装 Mariadb 数据库(平替MySql)

MariaDB 是一个通用的开源关系数据库管理系统。当 MySQL 于 2009 年被 Oracle 收购时,MySQL 创始人 Michael “Monty” Widenius 出于对 Oracle 管理权的担忧而分叉了该项目,并将新项目命名为 MariaDB。 MySQL 以他的第一个女儿 My 命名,而 MariaDB 则以他的第二个女儿 Maria 命名。

一、拉取镜像

docker pull mariadb

二、安装程序

1. 创建临时容器将配置文件copy到磁盘
# 运行临时容器Copy配置文件到本地
docker run --rm -d --name mariadb -e "MYSQL_ALLOW_EMPTY_PASSWORD=yes" mariadb
# mariadb 高版本中,已将 mariadb.cnf 代替了 my.cnf
docker cp mariadb:/etc/mysql/. /data/mariadb/conf
# 修改权限为644,否则会出现:mysql: [Warning] World-writable config file '/etc/mysql/my.cnf' is ignored.
chmod 644 -R /data/mariadb/conf
docker stop mariadb
2. 为了简化设置,此先设置空密码,下边再进行修改
docker run -d \
--name mariadb \
--restart=unless-stopped \
-p 3306:3306 \
-v /etc/localtime:/etc/localtime:ro \
-v /var/log/mariadb:/var/log/mysql \
# 映射配置
-v /data/mariadb/conf:/etc/mysql \
# 映射数据
-v /data/mariadb/data:/var/lib/mysql \
# 映射文件目录
-v /data/mariadb/mysql-files:/var/lib/mysql-files \
# 先设置空密码
-e "MYSQL_ALLOW_EMPTY_PASSWORD=yes" \
-e "TZ=Asia/Shanghai" \
mariadb

三、设置密码及远程访问

docker exec -it mariadb /bin/bash   # 进入容器,也可以使用 Portainer
mariadb -u root                     # 在容器内登录mariadb数据库,创建时未指定密码,所以不需要填写密码

# 切换到mysql数据库
use mysql;
# select host,user from user; -- 当不存在'root@'%'
# mariadb 高版本中,user 表调整到了 global_priv 表,user 仅作为一个视图
UPDATE global_priv SET host = '%' WHERE user = 'root';
flush privileges; -- # 使修改立即生效
# 修改root密码,有密码强度要求
SET PASSWORD FOR 'root'@'%' = PASSWORD('PE307I1P7PMnp1JQyiTGBSMqEhPq8zV7');
flush privileges;     -- # 使修改立即生效

四、连接测试

使用连接工具测试,本示例使用的是:Navicat

分享到:
本文链接:https://blog.renzicu.com/2023/12/469.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明出处!
THE END
二维码
打赏
文章目录
关闭
目 录