Docker 安装 mysql8 并对外暴露端口方法

环境

CentOS 7.6 Docker 20

流程

  1. 安装mysql8.0.23
sudo docker pull mysql:8.0.23
  1. 检查镜像是否正确拉取
sudo docker images
  1. 启动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
  1. 检查是否启动成功
docker ps
  1. 设置mysql开机启动
docker update mysql --restart=always
  1. 需要外部连接mysq需要先关闭防火墙
sudo systemctl stop firewalld.service

不再使用后记得重新开启防火墙

sudo systemctl start firewalld.service
  1. 重启docker
sudo systemctl restart docker
  1. 启动mysql
docker start mysql
  1. 进入mysql容器
sudo docker exec -it mysql bash
  1. 进入mysql
mysql -uroot -p
  1. 查看用户信息表
select host,user,plugin,authentication_string from mysql.user;

host为 % 表示不限制ip,localhost表示本机使用 plugin非mysql_native_password 则需要修改密码

  1. 修改用户密码 密码建议尽量复杂一点,这里123456只是作为演示。
ALTER USER root@% IDENTIFIED WITH mysql_native_password BY 123456;
ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY 123456;
  1. 以上两条sql都执行后即可用root和新密码远程连接mysql
  2. 补充命令
# 重启mysql
docker restart mysql
# 查看mysql安装位置
where is mysql
# 停止mysql
docker stop mysql
# 删除镜像
docker rmi 镜像ID
经验分享 程序员 微信小程序 职场和发展