摘要
主要是介绍docker中mysql服务的构建和mysql集群的构建方式。
一、docker构建单个mysql服务 1.1 查找mysql镜像源# 查询mysql版本
docker search mysql
1.2 拉取 MySQL 镜像
# 拉取到最新版本
docker pull mysql:latest
# 拉取指定版本的数据库(数据库库版本5.7)
docker pull mysql:5.7
docker images
安装完成后,我们可以使用以下命令来运行 mysql 容器:
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=密码 mysql
参数说明:
- -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
- MYSQL_ROOT_PASSWORD=root账户的密码:设置 MySQL 服务 root 用户的密码。
docker run -p 3306:3306 --name mysql-master -v /home/xjl/data/mysql-master/log:/var/log/mysql -v /home/xjl/data/mysql-master/data:/var/lib/mysql -v /home/xjl/data/mysql-master/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
参数说明:
- --name :表示容器的名字
- -v :表示挂载卷
- -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
- MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。
- mysql:5.7:表示的拉取的镜像的版本
通过 docker ps 命令查看是否安装成功:
如果是msyql5.7的话远程和本地都是可以直接连接。
如果是msyql5.8的话需要修改的远程连接的方式才能连接。
#进入容器
docker exec -it 容器ID /bin/bash
#登录mysql
mysql -u root -p
修改mysql配置
use mysql
查看plugin设置
select host, user, plugin from user;
修改认证方式
本地:ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY '密码';
远程:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
## 可以看到root的plugin是caching_sha2_password,我们希望改成mysql_native_password
## 而这里总共有两个root,一个代表的是远程连接,一个是本地连接,所以根据自己需求修改
#添加远程登录用户
CREATE USER 'liaozesong'@'%' IDENTIFIED WITH mysql_native_password BY 'Lzslov123!';
GRANT ALL PRIVILEGES ON *.* TO 'liaozesong'@'%';
使用DBeaver连接测试
使用代理或者是的SSH连接数据库
二、docker中的构建msyql的主从备份 2.1 master的节点的配置 2.2 slave的节点的配置 2.3 msyql的主从备份测试
Docker搭建MySQL主从集群,基于GTID - 东北小狐狸 - 博客园
https://segmentfault.com/a/1190000038223139
https://cloud.tencent.com/developer/article/1592536
docker mysql主从及双机热备。 - 简书