docker 安装最新版 mysql
修改 mysql 最新配置文件
- 拉取 mysql 最新版 docker 镜像
docker pull mysql/mysql-server
- 创建 mysql 数据和配置文件夹
mkdir -p /data/mysql/data
mkdir -p /data/mysql/config
- 启动 mysql 容器
docker run --name mysql --restart=always -p 3306:3306 -e TZ="Asia/Shanghai" -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD=*Abc123456 -v /data/mysql/data:/var/lib/mysql -d mysql/mysql-server --lower-case-table-names=1
- 拷贝 mysql 最新配置文件
cd /data/mysql/config && docker cp mysql:/etc/my.cnf .
- 新增连表查询配置
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
配置 mysql 远程登录权限
- 删除 mysql 旧容器
docker stop mysql
docker rm mysql
- 重新启动 mysql 容器并启用新配置
docker run --name mysql --restart=always -p 3306:3306 -e TZ="Asia/Shanghai" -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD=*Abc123456 -v /data/mysql/data:/var/lib/mysql -v /data/mysql/config/my.cnf:/etc/my.cnf -d mysql/mysql-server --lower-case-table-names=1
- 进入 mysql 容器
docker exec -it mysql /bin/bash
- 登录 mysql 数据库
mysql -u root -p
- 使用默认 mysql 配置数据库
use mysql;
- 查看 root 用户远程访问权限
select host from user where user='root';
- 修改 root 用户远程访问权限
update user set host = '%' where user ='root';
- 设置 root 用户远程登录密码
ALTER USER 'root'@'%' IDENTIFIED WITH 'mysql_native_password' BY '*Abc123456';
- 刷新权限使配置立即生效
flush privileges;
- 使用 navicat 远程访问 mysql 数据库