使用Docker搭建MySQL读写分离集群
MySQL 主从同步集群搭建
使用 docker 方式创建,主从服务器 IP 一致,端口号不同
docker 服务名分别为:
yuluo-mysql-master port: 3306
yuluo-mysql-slave1 port: 3307
yuluo-mysql-slave2 port:3308
确保关闭服务器防火墙
centos: systemctl stop firewalld
ubuntu: systemctl stop ufw
主服务器配置
1. 创建并启动 MySQL 主服务器
2. 创建 MySQL 主服务器配置文件
vim /home/yuluo/shardingsphere-env/master/conf/my.cnf
查看 docker 的容器状态,确保为 up 状态
3. 测试连接
进入 MySQL 主服务器登录 mysql
4. 主节点创建 slave 用户
5. 在主机中查询 master 状态:
记下 File 和 Position 的值。执行完此步骤后不要再操作主服务器 MYSQL,防止主服务器状态值变化。
从服务器配置 1
1. 启动从服务器 1
查看容器状态,确保处于 up 状态
2. 从服务器配置文件 1
vim /home/yuluo/shardingsphere-env/slave1/conf/my.cnf
3. 测试连接
4. 在从机中配置主从关系
5. 启动从机的复制功能
两项都为 Yes,即搭建成功!
从服务器配置 2
按照上述从服务器 1 的配置创建从服务器 2
创建并启动从服务器 2
从服务器配置文件 1
在从机 2 中配置主从关系
主从同步测试
在主机中执行以下 SQL,在从机中查看数据库、表和数据是否已经被同步
停止和重置
常见错误解决
1. 启动主从同步后,常见错误是 Slave_IO_Running: No 或者 Connecting 的情况,此时查看下方的 Last_IO_ERROR 错误日志
2.
启动 docker 容器后提示 WARNING: IPv4 forwarding is disabled. Networking will not work.
此错误,虽然不影响主从同步的搭建,但是如果想从远程客户端通过以下方式连接 docker 中的 MySQL 则没法连接