MySQL Centos

一. 搜索镜像

查找Docker Hub上的mysql镜像。

1
2
3
4
5
[root@localhost ~]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 8178 [OK]
mariadb MariaDB is a community-developed fork of MyS… 2785 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 610 [OK]

二. 拉取MySQL镜像

拉取Docker Hub上的mysql镜像。

1
[root@localhost ~]# docker pull mysql:8.0

三. 查看本地镜像列表

查看MySQL镜像是否拉取成功。

1
2
[root@localhost ~]# docker images | grep mysql
mysql 8.0 990386cbd5c0 7 days ago 443MB

四. 创建存储目录

创建MySQL持久化文件目录。

1
[root@localhost ~]# mkdir -p /home/data/mysql/data /home/data/mysql/conf /home/data/mysql/logs

五. 启动容器

options说明:
–restart=always: 重启策略
-d: 后台运行容器,并返回容器ID
-p: 端口映射,格式为:主机(宿主)端口:容器端口
–name: 为容器指定一个名称
-v: 给容器挂载存储卷,挂载到容器的某个目录
–mount: 绑定数据目录和服务器配置文件
-e MYSQL_ROOT_PASSWORD: 设置数据库密码
–character-set-server: 设置编码
–collation-server: 设置编码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[root@localhost ~]# docker run --restart=always --name=mysql8.0 -p 3306:3306 \
--mount type=bind,src=/home/data/mysql/conf/my.cnf,dst=/etc/my.cnf \
--mount type=bind,src=/home/data/mysql/data,dst=/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
# 检查配置信息
[root@localhost ~]# docker inspect mysql8.0
...
"Mounts": [
{
"Type": "bind",
"Source": "/home/data/mysql/conf/my.cnf",
"Target": "/etc/my.cnf"
},
{
"Type": "bind",
"Source": "/home/data/mysql/data",
"Target": "/var/lib/mysql"
}
],
...
# 查看镜像服务是否启动成功
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0bab4245d067 mysql:8.0 "docker-entrypoint.s…" 41 minutes ago Up 41 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql8.0

六. 配置远程工具连接

使用远程工具连接会报错: 2059 - Authentication plugin ‘caching_sha2_password’ cannot be loaded: …
原因: MySql 8.0 换了新的身份验证插件caching_sha2_password, 原来的身份验证插件为mysql_native_password。而客户端工具Navicat Premium中找不到新的身份验证插件caching_sha2_password;
解决方法:
以root用户身份进入mysql
命令: docker exec -it mysql8.0 mysql –user=root –password=123456

1
2
3
4
5
6
7
[root@localhost data]# docker exec -it mysql8.0 mysql --user=root --password=123456
# 切换数据库
mysql> use mysql;
# 修改校验插件规则
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
# 刷新数据库
mysql> flush privileges;

最后更新: 2021年04月01日 11:03

原始链接: https://www.lmaye.com/2019/05/22/20190522162930/

× 多少都行~
打赏二维码