提前找好要安装什么版本的 mysql,这里用的是 8.4.1

拉取 mysql 镜像

1
2
3
4
5
6
# 拉取最新版本的 mysql
sudo docker pull mysql
# 拉取指定版本的 mysql
sudo docker pull mysql:8.4.1
# 查看镜像
sudo docker images

docker 启动/运行 mysql

1
2
3
4
5
6
7
8
9
10
11
12
sudo mkdir -p /opt/mysql/conf/conf.d
sudo chown -R 999:999 /opt/mysql/conf
sudo chmod -R 755 /opt/mysql/conf

sudo docker run \
-p 3307:3306 \ # 这里为了区分,":" 左侧 3307是宿主机端口,":" 右侧 3306是容器端口。
--name mysql-8.4.1 \ # 容器名称
-v /opt/mysql/log:/var/log/mysql \ # 这里三个 "-v" 是备份mysql的数据和配置。
-v /opt/mysql/data:/var/lib/mysql \
-v /opt/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \ # 设置当前mysql实例的密码
-d mysql:8.4.1 # 需要运行的容器名称和版本

启动并进入 mysql 容器

1
sudo docker exec -it mysql-8.4.1 bash

设置远程访问

生产环境不建议用 root 远程访问!

1
2
3
4
5
6
mysql -u root -p

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH caching_sha2_password BY '这是密码';
# 修改本地密码 (可选)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '这是密码';
mysql> FLUSH PRIVILEGES;