Docker 日常学习之 mysql 启动及设置服务端字符集

docker 之mysql 学习

把 mysql 跑在docker里面,为了便于管理;

一、 docker mysql 启动

1、docker 启动命令

docker run \
-p 13306:3306 \
-v /var/mysql-5.7/conf:/etc/mysql \
-v /var/mysql-5.7/logs:/var/logs/mysql \
-v /var/mysql-5.7/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7 \
--name mysql5.7

二、各项参数说明

参数:
1)、-p 13306:3306  # 本地端口映射容器内部端口
2)、-v /var/mysql-5.7/conf:/etc/mysql  # 容器数据卷
3)、-e MYSQL_ROOT_PASSWORD=123456 # 设置mysql 的root用户默认密码,初始化root用户的密码 (必填)
4)、-d # 选择后台运行
5)、--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci # 设置mysql服务端的默认字符集为utf8mb4
6)、mysql:5.7 # 指定镜像及运行版本
7)、-name  mysql5.7 # 为容器取别名, 为了在物理机上取别容器,也为访问容器方便;

二、docker mysql 设置字符集

理论上有两种解决方案: 一个是在本地创建一个my.cnf文件挂载到容器的配置文件目录下,在配置文件中指定utf8编码,但通过自己实验,貌似这种方法不好使(可能自己有哪块没弄对); 另一个方法就是在创建容器的时候就指定编码;

执行命令:

docker run -p 13306:3306 \
-v /var/mysql-5.7/conf:/etc/mysql \
-v /var/mysql-5.7/logs:/var/logs/mysql \
-v /var/mysql-5.7/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci \
--name mysql5.7

和之前创建容器的命令相比,多了两个参数–character-set-server=utf8mb4 –collation-server=utf8mb4_unicode_ci,这样mysql容器就设置好字符集了,再次启动springboot应用操作数据库,一切正常;

想查看在创建容器时有哪些可用的选项,可以执行:

docker run -it --rm mysql:tag --verbose --help

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值