0、MySQL 配置
创建挂载的目录
mkdir -p /myDocker/mysql/conf
vi /myDocker/mysql/conf/my.cnf
输入以下配置文件
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
1、下载镜像文件,创建实例并启动
docker pull mysql:5.7
docker run -p 3306:3306 --name mysql \
-v /myDocker/mysql/log:/var/log/mysql \
-v /myDocker/mysql/data:/var/lib/mysql \
-v /myDocker/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
参数说明
- --restart=always 开机自启
- -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
- -v /myDocker/mysql/conf:/etc/mysql/conf.d:将配置文件夹挂载到主机
- -v /myDocker/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
- -v /myDocker/mysql/data:/var/lib/mysql:将数据文件夹挂载到主机
- -e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码
注意:-v /myDocker/mysql/conf:/etc/mysql/conf.d ,这段代码笔者在使用时遇到一些错误,挂载时需要加上conf.d,如果部署发生错误,尝试去除这段,换用以下部署代码
docker run --restart=always -p 3306:3306 --name mysql \
-v /myDocker/mysql/log:/var/log/mysql \
-v /myDocker/mysql/data:/var/lib/mysql \
-v /myDocker/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
2、进入容器,修改权限
使用容器mysql命令行工具
docker exec -it mysql mysql -uroot -proot
设置 root 远程访问
//设置远程root密码登录,与本地root密码登录不同
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
// 如需修改
//alter user 'root'@'%' identified with mysql_native_password by '123456';
flush privileges;sh
进入容器内部,查看配置文件是否挂载成功
docker exec -it mysql /bin/bash
cd /etc/mysql/conf.d
cat my.cnf
注意:挂载的配置文件要先创建才可以看到容器内部是否生效,即要先创建/myDocker/mysql/confmy.cnf
文件才能观察到内外配置信息。