¶一、环境规划
主机名 | IP地址 | 备注 | |
---|---|---|---|
服务器A | hosta | 192.168.60.101 | keepalive主节点、Mysql主节点1 |
服务器B | hostb | 192.168.60.102 | keepalive备节点、Mysql主节点2 |
192.168.60.222 | keepalive虚拟IP,会在keepalive启动后分配到上面2台机器的主节点上 |
¶二、Mysql安装配置
为了简化mysql安装过程,这里使用docker来进行安装配置。
1 | docker pull mysql:5.7 |
服务器A配置:
1 | ## my.cnf |
服务器B配置:
1 | ## my.cnf |
1 | 运行mysql实例 |
将服务器A数据库数据导出并导入到数据库B中。在服务器B上进行如下操作:
1 | mysqldump -uroot -p123456 -h 192.168.60.101 --single-transaction --all-databases --master-data=2 > hosta.sql |
在服务器B上开启数据库复制
1 | mysql -uroot -p123456 |
1 | -- 配置复制 |
在服务器A上开启数据库复制
1 | mysql -uroot -p123456 |
1 | -- 配置复制 |
测试双主复制
1 | --在服务器A上创建数据库 |
¶三、Keepalived安装配置
安装过程以及使用请看《keepalived学习笔记》一文。在本次案例中Keepalived配置如下:
服务器A:
1 | ! Configuration File for keepalived |
服务器B:
1 | ! Configuration File for keepalived |
1 | vim /etc/keepalived/chk_mysql_port |
1 |
|
¶四、测试
在客户端通过虚拟ip:192.168.60.222连接mysql。然后尝试关闭服务器A的mysql看是否客户端还能正常使用(虚拟ip指向服务器B)。
1 | 在服务器A上关闭mysql |
参考: