docker run
-p 3306:3306 \
--name mysql8
--privileged=true
--restart unless-stopped
-v /home/mysql/mysql:/etc/mysql
-v /home/mysql/logs:/logs
-v /home/mysql/data:/var/lib/mysql
-v /etc/localtime:/etc/localtime
-e MYSQL_ROOT_PASSWORD=xxxxxx -e MYSQL_ALLOW_EMPTY_PASSWORD=yes
-d mysql:8.0.20
启动一个mysql8容器 ,我们会发现虽然配置成功了但是无法用配置的密码登录
这时候需要用MYSQL_ALLOW_EMPTY_PASSWORD=yes 让我们不用密码也能登录。
登录上后配置密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxxxx' PASSWORD EXPIRE NEVER;
exit后用密码登录可以了。
但此时不用密码还能登陆,这显然不安全
此时要去修改容器的配置文件
root下去容器的目录
/var/lib/docker/containers/424a5c286d5a8f1d8db63e053bd6c08d257cdf6ecffcad76db8b70e2be4401b7
docker stop mysql8
systemctl stop docker
这里必须先停掉docker 直接修改restart容器会把删除的env补充回来
vim config.v2.json
systemctl start docker
这时候docker mysql就正常了