MariaDB数据库主从复制+读写分离

1.主从复制

1.1什么是主从复制

主从复制的原理 : 简而言之,MySQL-A在进行写操作时,都会更新数据库A的二进制sql日志,通过网络传输将二进制sql日志传递给数据库B,B再将二进制sql日志写入B数据库,完成主从复制。

mariadb 已有数据双主 mariadb主从模式_主从复制


主从复制能够解决:

①数据不丢失

②备份

③读写分离

④数据库负载均衡

⑤高可用

1.2主从复制配置

①准备两台linux服务器:

192.168.126.129 主服务器 master

192.168.126.130 从服务器 slave

②启动mysql

systemctl start mariadb

③关闭防火墙

firewall-cmd --state检查防火墙的状态

systemctl stop firewalld.service 关闭防火墙

systemctl disable firewalld.service 禁止防火墙开机自启

④编辑主服务器master下的/etc/my.conf文件

vim /etc/my.conf进入编辑

mariadb 已有数据双主 mariadb主从模式_读写分离_02


编辑完成后重启mysql数据库

systemctl restart mariadb

⑤打开SQLyog工具

执行如下语句

SHOW VARIABLES LIKE ‘server_id’;执行出现如下信息则说明配置成功

mariadb 已有数据双主 mariadb主从模式_mariadb 已有数据双主_03


⑥实现主从挂载

查看主库的状态出现如下信息

mariadb 已有数据双主 mariadb主从模式_数据库_04


配置从库slave 执行如下语句

mariadb 已有数据双主 mariadb主从模式_mysql_05


启动主从服务,查看主从状态,出现两个yes则主从搭建成功

mariadb 已有数据双主 mariadb主从模式_mariadb 已有数据双主_06


进行测试,修改主库中的数据然后刷新从库查看发现数据同步

2.读写分离

2.1实现数据库的读写分离

Mycat数据库代理 mycat下载

mariadb 已有数据双主 mariadb主从模式_mariadb 已有数据双主_07


解压安装包

mariadb 已有数据双主 mariadb主从模式_mariadb 已有数据双主_08


编辑service.xml文件说明: 该配置主要实现用户与代理之间的配置关系.

端口号: 8066端口

修改配置文件:

mariadb 已有数据双主 mariadb主从模式_主从复制_09


编辑schema.xml用户写操作访问129,用户的读操作访问129/130

mariadb 已有数据双主 mariadb主从模式_mysql_10


修改数据库连接地址 mycat默认端口8066

mariadb 已有数据双主 mariadb主从模式_主从复制_11


启动mycat服务 进入mycat bin目录下执行

./mycat start 启动

./mycat status 查看状态是否启动成功

mariadb 已有数据双主 mariadb主从模式_mysql_12


出现如图所示则成功

出现错误则查看日志

进入logs目录

cat wrapper.log 查看报错信息

2.2高可用

当数据库主机宕机之后,要求实现高可用机制.用户程序将不会受到影响. 数据库高可用机制.

2.2.1双机热备的思想

mariadb 已有数据双主 mariadb主从模式_mysql_13

2.2.2进行反向搭建

之前192.168.126.129为主机192.168.126.130为从机

现在192.168.126.130当主机192.168.126.129当从机

130执行:

mariadb 已有数据双主 mariadb主从模式_主从复制_14


129执行:

mariadb 已有数据双主 mariadb主从模式_数据库_15


修改mycat配置schema.xml文件

mariadb 已有数据双主 mariadb主从模式_数据库_16


dataHost参数介绍

mariadb 已有数据双主 mariadb主从模式_主从复制_17


重启mycat服务

./mycat restart 重启

这样就实现了双机热备,及时一台数据库宕机也不会影响用户的读写操作

主库宕机后会自动切换到第二个节点,因为双主模式的搭建,主库恢复后会拉取从库的数据,两个数据库既是从库也是主库实现了同步