Docker踩坑笔记[二]:Docker中使用MySQL(基于CentOS7)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zouguo1211/article/details/84962384

Docker之MySQL的使用

拉取Mysql镜像

docker中国加速:docker pull registry.docker-cn.com/library/
docke-hub地址:https://hub.docker.com/r/_/mysql/

查看TAG

在这里插入图片描述

选取需要的版本下载,命令为

docker pull registry.docker-cn.com/library/mysql:TAG

我选择了5.6.42版本

[root@localhost bin]# docker pull registry.docker-cn.com/library/mysql:5.6.42

在这里插入图片描述

启动Mysql5.6

现在我们启动一个容器,名字为MYSQL5.6,这里介绍两种方式:

· Configuration without a cnf file方式

参照官方文档,我们可以不使用配置文件,可以用命令行参数的方式去设置MySQL的一些属性,配置;

在这里插入图片描述

运行命令为:

docker run \
--name MYSQL5.6 \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
-d a46c \
--character-set-server=utf8 \
--collation-server=utf8_unicode_ci

参数说明(每一行后面的\是Linux命令换行):

-e设置容器相关参数,这里是设置root密码为123456(其他设置,可以参照官方文档:mysql-docker

-p做端口映射,将主机的3306端口映射到容器的3306端口

-d后台启动,参数可以是镜像的IMAGE_ID,也可以是name:TAG

最后两行是对这个容器的字符编码,和排序规则的设置

在这里插入图片描述

· 使用配置文件挂载方式

参照官方文档,

在这里插入图片描述

我们可以将主机目录挂载到容器内的指定目录,这样就可以在主机目录下存放我们的配置文件,让容器加载;

首先,新建一个需要被挂载的主机目录,这里我们选择在/home/docker-conf/mysql

然后在此目录下新建cnfdata目录,

cnf目录下新建my.cnf文件,内容是

[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
default-storage-engine=INNODB
collation-server=utf8_general_ci
[mysql]
default-character-set=utf8

最终的目录结构如下:

在这里插入图片描述

然后,就是以挂载配置文件的方式启动一个mysql容器了:

参照官方文档的说明,我们可以将我们自定义的配置文件目录挂载到/etc/mysql/conf.d,这样就会被容器找到;

docker run --name MYSQL02 -v /home/docker-conf/mysql/conf/:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 -d a46c

参数说明:

-v就是把主机目录挂载到容器目录,这里我们将/home/docker-conf/mysql/conf挂载到容器内部的/etc/mysql/conf.d

在这里插入图片描述

启动成功!

这里我们也可以将data数据目录进行挂载,容器内部的数据目录是:/var/lib/mysql,这里不再演示;

验证Mysql连接

在此之前,请确认主机防火墙开放了相应端口;

这里我使用Navicat进行测试:

测试3306端口的连接

在这里插入图片描述

测试3307端口的连接

在这里插入图片描述

测试连接成功;

查看字符编码

SHOW VARIABLES LIKE '%char%'

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zouguo1211/article/details/84962384