1. pull mysql
docker pull mysql:8.0.26
2. 启动镜像将配置文件复制到本机
1️⃣ docker run -p 3306:3306 --name mysql8 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.26
2️⃣ mkdir -p /mydata/mysql8/conf
3️⃣ docker cp mysql8:/etc/mysql /mydata/mysql8/conf/
3. 删除容器
1️⃣ docker stop mysql8
2️⃣ docker rm mysql8
4. 挂载配置文件,数据持久化到宿主主机
docker run
-p 3306:3306
–name mysql8
–privileged=true
–restart unless-stopped
-v /mydata/mysql8/config/mysql:/etc/mysql
-v /mydata/mysql8/logs:/logs
-v /mydata/mysql8/data:/var/lib/mysql-files
-v /etc/localtime:/etc/localtime
-e MYSQL_ROOT_PASSWORD=123456
-d mysql:8.0.26
或者::
docker run -p 3306:3306 --name myqsl8 --privileged=true --restart unless-stopped -v /mydata/mysql8/config/mysql:/etc/mysql -v /mydata/mysql8/logs:/logs -v /mydata/mysql8/data:/var/lib/mysql-files -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.26
–privileged=true:挂载文件权限设置
–restart unless-stopped:设置开机后自动重启容器
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
-v /mydata/mysql8/conf:/etc/mysql:将配置文件夹挂在到主机
-v /mydata/mysql8/logs:/logs:将日志文件夹挂载到主机
-v /mydata/mysql8/data:/var/lib/mysql/:将数据文件夹挂载到主机
-v /etc/localtime:/etc/localtime:容器时区与宿主机同步
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码
-d mysql:8.0.26:后台启动
** 5. docker 本地连接 MySQL 客户端**
docker exec -it 容器ID /bin/bash
mysql -uroot -p123456
6. 设置远程访问账号,并授权远程连接
1️⃣ ALTER USER ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
2️⃣FLUSH PRIVILEGES;
7. 验证远程链接
本地sql可视化工具能连接成功即可
注意
挂载出了问题
docker logs 容器Id
看看错误
如跟着给一样删除下容器 重新配置下挂载目录就好了