Docker 安装 mysql8 并对外暴露端口方法
环境
CentOS 7.6 Docker 20
流程
- 安装mysql8.0.23
sudo docker pull mysql:8.0.23
- 检查镜像是否正确拉取
sudo docker images
- 启动mysql容器
sudo docker run -p 3306:3306 --name mysql -v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files -v /usr/local/docker/mysql/conf:/etc/mysql -v /usr/local/docker/mysql/logs:/var/log/mysql -v /usr/local/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0.23
- 检查是否启动成功
docker ps
- 设置mysql开机启动
docker update mysql --restart=always
- 需要外部连接mysq需要先关闭防火墙
sudo systemctl stop firewalld.service
不再使用后记得重新开启防火墙
sudo systemctl start firewalld.service
- 重启docker
sudo systemctl restart docker
- 启动mysql
docker start mysql
- 进入mysql容器
sudo docker exec -it mysql bash
- 进入mysql
mysql -uroot -p
- 查看用户信息表
select host,user,plugin,authentication_string from mysql.user;
host为 % 表示不限制ip,localhost表示本机使用 plugin非mysql_native_password 则需要修改密码
- 修改用户密码 密码建议尽量复杂一点,这里123456只是作为演示。
ALTER USER root@% IDENTIFIED WITH mysql_native_password BY 123456;
ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY 123456;
- 以上两条sql都执行后即可用root和新密码远程连接mysql
- 补充命令
# 重启mysql docker restart mysql
# 查看mysql安装位置 where is mysql
# 停止mysql docker stop mysql
# 删除镜像 docker rmi 镜像ID
