Docker安装MySQL 8.0并挂载数据目录
拉取镜像
# docker pull mysql:8.0
启动mysql容器
# docker run -d --restart=always --name mysql -p 3306:3306 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=123456 mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
复制容器中的文件到主机
#mkdir -p /home/data/mysql/var/
#docker cp mysql:/var/lib/mysql /home/data/mysql/var/lib/
#docker cp mysql:/etc/mysql /home/data/mysql/etc/
#docker cp mysql:/var/log /home/data/mysql/var/log/
将刚才启动的容器停掉并关闭,重新创建容器
#docker stop mysql
#docker rm mysql
#docker run -p 6602:3306 -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -v /root/data/mysql/data:/var/lib/mysql:rw -v /root/data/mysql/log:/var/log/mysql:rw -v /root/data/mysql/conf/my.cnf:/etc/mysql/my.cnf:rw --name mysql --restart=always -d mysql
-v 本机目录 容器目录
工具客户端连接测试
配置数据库密码:
docker进入容器
# docker exec -it mysql bash
进入容器后连接MySQL
# mysql -u root -p
执行命令,将用户的加密方式改为mysql_native_password,密码为root(自行设置密码)
alter user 'root'@'%' identified with mysql_native_password by root;
执行命令使权限配置项立即生效
flush privileges;
退出
exit
使用
ps:修改本机登录root密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';