docker安装mysql
下载mysql镜像
打开docker镜像仓库 https://hub.docker.com

我们下载官方镜像,点击打开

可以看到tags有很多不通版本的mysql

比如我想安装5.7版本的就可以使用 docker pull mysql:5.7 来安装

镜像下载完后可以数据 docker images 命令查一下是不是有了mysql的镜像

创建实例并启动
执行命令
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
第一个3306是centos对外的端口,第二个是容器mysql的端口,所以可以第一个端口不用默认端口3306,防止攻击
这里注意一下安装高版本的mysql的问题,安装8.0.30发现这样映射不行,conf这一句需要改为:
-v /mydata/mysql/conf:/etc/mysql/conf.d \

这样mysql就装好了,我们可以使用命令 docker ps 查一下docker正在运行中的容器:

然后试一下用客户端连接发现连接上了

解释一下上面的命令

-v表示的挂载的作用就是,改了左侧目录的文件,右侧目录里的也会变,改了右侧目录里的文件左侧也会变
修改mysql的配置设置utf8编码
由于我们对容器的mysql目录挂在到了centos外面的目录,所以直接修改外面的目录就可以
进入配置文件所在目录
cd /mydata/mysql/conf/
编辑my.conf,第一次没有这个文件使用vim存入配置后会自动创建
vim my.conf
my.conf中输入内容
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
docker restart mysql
设置开机总是自动重启,否则每次虚拟机重启都需要手动重启
sudo docker update mysql --restart=always

浙公网安备 33010602011771号