教程给的是5.7的mysql数据库,弹幕说后期会换成8.0mysql的用,就干脆一开始就装8.0的。
给出有区别的代码:
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql-files \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8.0.25
主要就是改两个地方:
1. 版本号
这里用的8.0.25,注意这里有个坑:
不要用8.0 这里的8.0是指下8.0的最新版本(现在是8.0.27)
我一开始下的8.0(实际是8.0.27),然后用docker把8.0.27卸了,重装的8.0.25,
一开始docker ps启动得来,过了几秒就自动关闭了,用docker logs <id>查看日志找原因,发现报错,大概意思是:
80025不能装载在80027的目录下,mysql不能向上兼容。
(一开始没弄明白,我直接重新部署虚拟机了)
2. 文件地址
-v /mydata/mysql/conf:/etc/mysql-files \
# mysql后要加-files
如果是8.0的,必须加-files。5.7可以不用(我都试过了,踩雷踩得有点累)
然后再从docker ps查看:
[root@localhost vagrant]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fd8380ad32f1 mysql:8.0.25 "docker-entrypoint.s…" 12 minutes ago Up 12 minutes 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql
这个status为up就是对的,为exist(1)或者exist(2)就是有错。