01
下载镜像
先检查宿主机有没有docker mysql镜像,备注:如果之前没有下载,可以使用docker pull mysql命令下载。
docker images

02
重新命名
docker tag mysql opt/mysql/mysql8.0.32

03
测试
测试opt/mysql/mysql8.0.32:v1.0可用;docker ps查看进程。
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d opt/mysql/mysql8.0.32:v1.0docker psdocker exec -it mysql bash mysql -uroot -p123456
04
登录mysql
显示已登录mysql

05
删除容器
docker stop mysql # 停止容器docker rm mysql # 删除容器
06
创建并运行新的容器
docker run --restart=unless-stopped -d --name mysql -p 3306:3306 --privileged=true -v etc/localtime:/etc/localtime:ro -v opt/mysql/mysql8.0.32/conf:/etc/mysql/conf.d -v /opt/mysql/mysql8.0.32/data:/var/lib/mysql -v /opt/mysql/mysql8.0.32/log:/var/log/mysql -e MYSQL_ROOT_PASSWORD=123456 opt/mysql/mysql8.0.32:v1.0
07
启动容器
可以看到mysql容器已经启动

08
再次登录mysql
docker exec -it mysql bash

09
命令行解释

10
本地登录
本地用Navicat工具连接数据库,192.168.3.117为宿主机IP,填入端口账户密码测试连接。

11
可能遇到的问题
修改字符集
中文报错肯定是字符集问题了,在容器中查看字符集(客户端工具会把部分字符集处理成本地字符集),可以看到大部分都不是utf8
show variables like 'character%';

12
修改配置文件
创建mysql的配置文件
上面已经挂载了mysql的配置文件目录,就可以直接在宿主机操作对应的目录了
在配置文件目录新建一个my.cnf配置文件,写入下面内容,设置客户端和mysql服务器端编码都为utf8
[client]default_character_set=utf8[mysqld]collation_server=utf8_general_cicharacter_set_server=utf8
13
u'tf8支持
mysql容器重启,
再次登录mysql查看show variables like 'character%';,已全部支持utf8中文格式

文章转载自数据中心知识,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




