docker mysql 安装

docker mysql 安装

1.拉取官方镜像(我们这里选择5.7,如果不写后面的版本号则会自动拉取最新版)

1
2
docker pull mysql:5.7   # 拉取 mysql 5.7
docker pull mysql # 拉取最新版mysql镜像

2.检查是否拉取成功

1
docker images

3.创建文件夹及创建配置文件

1
2
3
4
创建文件夹
mkdir -p /home/docker/mysql/data /home/docker/mysql/logs /home/docker/mysql/conf
创建文件
touch /home/docker/mysql/conf/my.cnf

4.建立目录映射

1
2
3
4
5
6
7
8
9
10
11
12
13
–name:容器名,此处命名为mysql
-e:配置信息,此处配置mysql的root用户的登陆密码
-p:端口映射,此处映射 主机3306端口 到 容器的3306端口
-v:映射磁盘目录
-d mysql : 要部署的镜像名,如果是5.7版本的话,这里则为mysql:5.7

建立目录映射 (前面的路径是硬盘路径/home/docker/mysql/conf)
docker run -p 3306:3306 --name mysql \
-v /home/docker/mysql/conf:/etc/mysql/conf.d \
-v /home/docker/mysql/logs \
-v /home/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=xxxx(xxxx为密码,自行设置) \
-d mysql:5.7

5.检查容器是否正确运行

1
2
docker ps -a
docker ps

6.配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
需要进入docker本地客户端设置远程访问账号 (一开始安装是没有密码的,直接Enter 就行)
$ sudo docker exec -it mysql bash
$ mysql -uroot -p xxxx(xxxx为密码,自行设置)

use mysql

grant all privileges on *.* to root@'%' identified by 'xxxx(xxxx为密码,自行设置)';

flush privileges;

容器开机自启
docker update --restart=always 3e105e6d1dfc

大小写关闭
进入容器
apt-get update
apt-get install vim
vim /etc/mysql/mysql.conf.d/mysqld.cnf
在mysqld.cnf 添加 lower_case_table_names=1
查询 show global variables like '%lower_case%';

7.注意事项

1
2
3
4
5
6
7
MySQL5.7.5后only_full_group_by成为sql_mode的默认选项之一,这可能导致一些sql语句失效。
比如在使用group by进行分组查询报错
vim /etc/mysql/mysql.conf.d/mysqld.cnf
在mysqld.cnf 添加 下面的配置
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

安装过程已验证

docker mysql 安装
http://example.com/2023/08/08/docker mysql 安装/
作者
zgx
发布于
2023年8月8日
许可协议