docker安装Mysql 8.0.11

1、下载镜像

1
docker pull mysql:8.0.11

2、创建挂载目录

​ 使用 -p 创建多级目录,即 /home目录下创建 mysql 目录, mysql 目录下又创建 log 、data 、conf 三个目录

1
2
3
mkdir -p /home/mountDirectory/mysql-8.0.1/logs
mkdir -p /home/mountDirectory/mysql-8.0.1/data
mkdir -p /home/mountDirectory/mysql-8.0.1/conf

3、创建my.cnf 配置文件

​ MySQL默认配置文件 /etc/my.cnf 末尾中有这么一行:!includedir /etc/mysql/conf.d/ ,意思是,在 /etc/mysql/conf.d/ 目录下新建自定义的配置文件 my.cnf也会被读取到,而且还是优先读取的(Docker Hub中的MySQL教程文档),进入 /etc目录下创建。

1
touch my.cnf

将一下内容写入到 my.cnf 配置文件中

1
2
3
4
5
6
7
8
[mysqld]
init-connect="SET collation_connection=utf8mb4_0900_ai_ci"
init_connect="SET NAMES utf8mb4"
skip-character-set-client-handshake
default_authentication_plugin=mysql_native_password
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
#mysql不区分表名大小写
lower_case_table_names=1

4、创建容器

将配置选项作为标志传递给mysqld,MYSQL_ROOT_PASSWORD 指定密码

1
2
3
4
5
6
7
8
9
10
11
docker run --name mysql8 \
-v /home/mountDirectory/mysql-8.0.11/logs:/var/log/mysql \
-v /home/mountDirectory/mysql-8.0.11/data:/var/lib/mysql \
-v /home/mountDirectory/mysql-8.0.11/conf:/etc/mysql/conf.d \
-p 3305:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
--restart=always \
-d mysql:8.0.11 \
--init-connect="SET collation_connection=utf8mb4_0900_ai_ci" \
--init-connect="SET NAMES utf8mb4" \
--skip-character-set-client-handshake

5、使用 DataGrip 连接

连接 url 如下

1
2
```mysql
jdbc:mysql://ip地址:端口号/mysql?useSSL=no&allowPublicKeyRetrieval=true