Docker搭建Mysql

一、docker服务安装正常启动

二、拉取mysql镜像:docker pull mysql:5.7

三、查看镜像:docker images

四、启动镜像:

docker run -p 3306:3306 --name mysql -v /opt/docker/mysql/conf/conf.d:/etc/mysql/conf.d -v /opt/docker/mysql/logs:/var/log/mysql -v /opt/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e TZ="Asia/Shanghai"  -d mysql:5.7

 

命令说明:

  • -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。

  • -v -v /opt/mysql/conf/conf.d:/etc/mysql/conf.d:将主机对应目录挂载到容器的 /etc/mysql/conf.d

  • -v /opt/mysql/logs:/var/log/mysql:将主机对应目录下的 logs 目录挂载到容器的 /logs。

  • -v /opt/mysql/data/mysql:/var/lib/mysql :将主机对应目录下的data目录挂载到容器的 /var/lib/mysql 。

  • -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。

  • --restart=always 开机只启动(若需要可加上)

 

ps:

在运行时设置时区  

docker run -e TZ="Asia/Shanghai" --name xxxx

 

 

以上部署后,大概率出现中文乱码,中文显示???

 

docker mysql 容器中文显示"?"[问号]问题处理

 

修改 Docker 中 MySQL 容器的编码

找到问题点:

登录mysql,执行下面这个命令查看你数据库的编码格式

show variables like 'char%';


这个latin1,是导致中文显示"?"[问号]的原因

处理方法:

Docker容器 MySQL中文乱码解决方案

docker exec进入容器

1
sudo docker exec -it 588340b778f6 bash

 

执行以下命令,将 character-set-server=utf8 写入mysql配置文件

1
echo "character-set-server=utf8" >> /etc/mysql/mysql.conf.d/mysqld.cnf
2
echo "default-time-zone = '+08:00'" >> /etc/mysql/mysql.conf.d/mysqld.cnf

  修改时区


重启mysql 容器使以上修改生效

1
sudo docker restart 588340b778f6

 

查看编码:

show variables like 'char%';

查看时区:SELECT NOW()

 

posted @ 2019-12-13 17:19  panchanggui  阅读(227)  评论(0编辑  收藏  举报