准备工作
创建要使用的路径
当前要将容器映射的路径存放到 /home/mysql01 下,所以对应的映射路径前缀均为该路径,若要更换路径的,可以将此前缀路径替换成要更换的。
/home/mysql01/my.cnf # mysql 配置文件
/home/mysql01/Data # mysql 数据库文件
/home/mysql01/Files
/home/mysql01/Log
准备好默认配置
/home/mysql01/my.cnf 文件内容如下:
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv=NULL
default-time-zone='+8:00'
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
sql-mode=
# Custom config should go here
!includedir /etc/mysql/conf.d/
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4
运行容器
初步运行容器
先将容器拉取到本地
docker pull mysql:8.0.28
再运行容器
docker run -itd \
-m 1g \
-v /home/mysql01/Data:/var/lib/mysql \
-v /home/mysql01/my.cnf:/etc/mysql/my.cnf \
-v /home/mysql01/Files:/var/lib/mysql-files \
-v /home/mysql01/Log:/var/log/mysql \
--privileged=true \
--restart=always \
--name mysql01 \
-e "TZ=Asia/Shanghai" \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 mysql:8.0.28
修改配置文件权限并重启容器
进入容器
docker exec -it mysql01 /bin/bash
修改配置文件权限
chmod 644 /etc/mysql/my.cnf
退出容器
exit
重启容器
docker container restart mysql01
初始账户设置
待容器重启好后,进入容器,然后登录进入 mysql,此时用 root 登录,输入密码的时候直接按回车即可。
mysql -u root -p
1. 将当前数据库设置为 mysql
use mysql;
2. 添加全网段可访问的 root 账号
create user 'root'@'%' identified with mysql_native_password by '123456';
3. 为新添加的账号授权
grant all privileges on *.* to 'root'@'%' with grant option;
4. 执行效果示例
至此,Docker 版的 Mysql 已经部署完成,在局域网或宿主机上已经可以通过 root 账户连接进入 mysql 上。