1、拉取镜像
docker pull mysql
2、创建一个mysql 镜像
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD="123456" -d mysql
3、进入mysql容器,指定配置文件在linux服务器挂载的路径
//进入mysql容器
docker exec -it mysql bash//查看配置文件位置
mysql --help | grep my.cnf
//退出容器
exit
//创建linux服务器上配置文件路径与数据库存储路径
mkdir -p /home/docker-mysql/conf && mkdir -p /home/docker-mysql/data
//将容器内的配置文件复制到linux服务器
docker cp mysql:/etc/mysql/my.cnf /home/docker-mysql/conf/my.cnf
//修改配置文件
vim /home/docker-mysql/conf/my.cnf
//想改的配置往里写就完事了
4、移除旧的mysql容器,创建新的mysql容器
//查看mysql容器的id
docker ps
//停止正在运行的mysql容器
docker stop 543a1feee7f3
//删除mysql容器
docker rm 543a1feee7f3
//重新创建容器
docker run --name mysql -p 3306:3306 -d -v /home/docker-mysql/conf/my.cnf:/etc/mysql/my.cnf -v /home/docker-mysql/data:/var/lib/mysql -v /home/docker-mysql/log:/logs -e MYSQL_ROOT_PASSWORD=123456 --restart=always mysql --lower_case_table_names=1
-e MYSQL_ROOT_PASSWORD 设置mysql密码
-v /home/data/mysql/conf/my.cnf:/etc/mysql/my.cnf 挂载配置文件路径
-v /home/mysql/:/var/lib/mysql 挂载磁盘实现数据持久化
--restart=always 容器异常停止后自动重启
--lower_case_table_names=1 忽略大小写,docker mysql默认区分大小写的
navcat 连接mysql 报错 mysql caching_sha2_password' cannot be loaded
mysql> use mysql;
mysql> ALTER USER 'root'@'%' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER; //修改root用户的加密规则
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root'; //修改root用户的密码为root
mysql> flush privileges; //刷新权限