docker search mysql
image.png
本次以mysql:8.0.29作为示例,注意不要使用最新版,容易出现不稳定的bug
image.png
docker pull mysql:8.0.29
image.png
使用mysql:8.0.29镜像创建容器(也叫运行镜像)
1、简单启动容器
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker ps
进入容器
docker exec -it a3864ef271c /bin/bash
mysql -uroot -p 然后输入密码
查看 docker mysql容器的 默认字符集编码
show variables like 'character%'
再考了一个问题:删除mysql容器后,数据就会丢失,怎么办?
2、实战版
新建mysql实例
docker run -d -p 23306:3306 --privileged=true \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=weizehong1987 \
--name mysql8.0 mysql:8.0.29 \
--lower_case_table_names=1
参数说明:
--privileged=true 开启容器数据卷权限
-v 挂载容器数据卷
-e 设置容器环境参数
--lower_case_table_names=1
要放在镜像名的后面,指定表名忽略大小写
show GLOBAL VARIABLES LIKE '%lower_case%'
image.png下一步,通过容器卷同步给mysql容器实例
cd /mydata/mysql/conf/
vim my.cnf
[client]
default_character_set=utf8mb4
[mysqld]
collation_server=utf8mb4_bin
character_set_server=utf8mb4
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
重新启动mysql容器实例,再重新进入并查看字符编码
docker restart mysql8.0
网友评论