1.下载MySQL镜像
docker pull mysql
查看msql镜像
docker images
2.安装MySQL容器
创建文件夹mysql_docker
用来保存mysql的本地配置信息
cd mysql_docker
下 再创建conf
文件在这之下
创建配置文件
vim docker.cnf
# 服务端配置
[mysqld]
# 不使用高速缓存区来存放主机名和ip地址的对应关系
skip-host-cache
# 不把ip地址解析为主机名;与访问控制(mysql.user数据库)有关的检查全部通过IP地址行进。
skip-name-resolve
# 忽略客户端的字符集,使用服务端的设置
skip-character-set-client-handshake
# 新数据库或数据表的默认排序方式
# unicode_ci准确性高,general_ci,性能高,但大多数情况下不会发生复杂的比较。
collation-server=utf8mb4_unicode_ci
# 新数据库或数据表的默认字符集
character-set-server=utf8mb4
init_connect='SET collation_connection =utf8mb4_unicode_ci'
init_connect='SET NAMES utf8mb4'
# 设置默认的时区,在docker中会少8小时,如果在创建容器时指定时区 这里可以不用配置
# default-time_zone='+8:00'
# 设置日记记录使用的时区,将它修改为系统时区,在docker中默认会差8小时(UTC)
log_timestamps=SYSTEM
vim mysql.cnf
# 客户端设置
[mysql]
# 设置mysql客户端默认字符集
# utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符。
# 如果空间不足 ,一般情况可以使用utf8
default-character-set=utf8mb4
使用以下命令
将配置文件映射到本地主机
docker run -di --name mysql -p 3306:3306 --restart=always \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-e TZ=Asia/Shanghai \
mysql:latest
docker run -di --name mysql -p 3306:3306 --restart=always -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e TZ=Asia/Shanghai mysql:latest
将mysql的conf.d配置文件 映射到mysql_docker/conf 文件夹下,其他同理-e MYSQL_ROOT_PASSWORD=root 为设置mysql的(root)启动密码
TZ=Asia/Shanghai:给容器指定时区
提示:根据mysql规则,在my.cnf中有 !includedir /etc/mysql/conf.d/ 的命令
所以自定义的配置文件都在/etc/mysql/conf.d/ 下
查看mysql进程
docker ps -a
3.进入MySQL容器,登录MySQL
docker exec -it mysql bash
mysql -u root -p
检测时间是否正确
select now();
检测日记记录是否使用的系统时区
show variables like "log_timestamps";
检测字符集和字符排序是否配置成功
show variables like "char%";show variables like "%collation%";