Docker 下 Mysql 的安装和配置

一、下载 Mysql 镜像

1
2
3
4
5
# 指定版本
docker pull mysql:5.7.30

# 最新版本
docker pull mysql

二、首先启动 Mysql

1、查看 docker 镜像库

1
docker images

1593764400

2、首次运行 mysql

1
2
3
4
5
格式:docker run -idt --name 自定义容器名 -p 要映射的端口号:3306 -e MYSQL_ROOT_PASSWORD=设置root的密码 要启动的mysql版本

例如:docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7.30

通过 docker ps 查看运行情况

1593765378(1)

三、进入 docker 下的 mysql 容器环境并复制配置文件

1、进入 mysql 容器 (可省略)

1
2
3
4
5
6
7
docker exec -it 机器码/容器名 /bin/bash

# 该文件夹下的mysql.cnf文件既mysql的配置文件
cd /etc/mysql/conf.d/

# 输出文件的路径方便下面的复制操作
pwd

1593765565(1)

2、复制 mysql 配置文件到指定目录下

1
2
3
# 如果执行了第一步操作,则需要通过 exit命令退出之后进行复制操作

docker cp 机器码/容器名:/etc/mysql/conf.d/mysql.cnf /opt

复制配置文件

四、修改配置文件并把配置文件重新复制到 Docker 容器中

1、修改配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 使用 xftp 连接服务器 找到 /opt下的mysql.cnf文件,右键使用编辑器打开
# 删除mysql.cnf文件内所有内容 并输入以下内容

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
default-storage-engine=INNODB
init_connect='SET collation_connection = utf8_general_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_general_ci
skip-character-set-client-handshake

2、复制配置文件到 Docker 容器中

1
docker cp /opt/mysql.cnf mysql:/etc/mysql/conf.d/

五、重启 mysql 查看是否修改成功

1、重启 mysql

1
docker restart mysql

2、查看 mysql 字符集

1
2
3
4
5
6
7
8
# 进入mysql容器
docker exec -it mysql /bin/bash

# 登录mysql
mysql -uroot -proot

# 查看字符集
show variables like 'character%';

查看mysql字符集

六、设置 Mysql 自动启动

1
2
3
4
5
6
7
# 第一次先启动mysql
# docker start 机器码/容器名
docker start mysql

# 配置自动启动
#docker update --restart=always 机器码/容器名
docker update --restart=always mysql