Docker 安装 MySQL
Docker 官网:https://docs.docker.com/
Docker Hub 镜像仓库:https://hub.docker.com/
拉取 mysql:latest 镜像
docker pull mysql
创建 MySQL 容器挂载目录
创建准备让 MySQL 容器挂载的相关目录。
mkdir -p /usr/local/workspace/mysql/{conf,data,files,mysqld}
mysql 容器内的程序并不是用 root 用户运行,设置目录权限。
cd /usr/local/workspace/mysql/
chmod 777 ./data ./files ./mysqld
运行 MySQL 容器
- 运行 MySQL 容器进去拷贝配置文件
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
- 拷贝配置文件
docker cp mysql:/etc/mysql/my.cnf /usr/local/workspace/mysql/conf/
docker cp mysql:/etc/mysql/conf.d /usr/local/workspace/mysql/conf/
- 删除 mysql 容器
docker rm -f mysql
- 重新创建 mysql 容器并添加挂载卷
docker run -p 11011:3306 --name mysql \
-v /usr/local/workspace/mysql/conf:/etc/mysql \
-v /usr/local/workspace/mysql/data:/var/lib/mysql \
-v /usr/local/workspace/mysql/files:/var/lib/mysql-files \
-v /usr/local/workspace/mysql/mysqld:/var/run/mysqld \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql
MYSQL_ROOT_PASSWORD=123456,该变量会在初始化 root 账号的时候把密码设置为:123456
设置远程登录 mysql
- 进入 mysql 容器
docker exec -it mysql /bin/bash
- 登录 mysql
mysql -u root -p
- 修改远程登录加密插件
一些老的mysql客户端不能用 caching_sha2_password 加密插件,可修改回老的加密验证方式。
use mysql;
alter user 'root'@'%' identified with mysql_native_password by '123456';
设置 mysql 容器自启动
docker update --restart=always mysql
