mysql主从集群读写分离的实现方案

本文详细描述了如何使用Mycat中间件将两个MySQL数据库配置为集群,通过binlog进行数据同步,并实现记录级灾备恢复。包括主从配置、Mycat配置文件的准备以及常见问题处理。
摘要由CSDN通过智能技术生成

本方案采用mycat中间件来实现两个mysql数据库的集群。两个mysql数据库分别配置为主、从,采用binlog进行数据同步。

另:基于binlog和数据库备份,可以实现记录级的灾备恢复(就算被删库,一条数据都不丢)。

整体步骤:

先做mysql的主从(master、slave)配置,
然后安装mycat,配置schema.xml、server.xml

明细:

假设主(master_host='192.168.1.70),从(slave_host='192.168.1.71),mysql离线安装在了/usr/local/mysql/

1、master配置:

vim /etc/my.cnf
server-id=200  #设置主服务器的ID
innodb_flush_log_at_trx_commit=2  #操作系统崩溃或者系统断电的情况下,上一秒钟所有事务数据才可能丢失
sync_binlog=1  #开启binlog日志同步功能
log-bin=mysql-bin-200  #binlog日志文件名
binlog-do-db=xxxx  # 这个表示只同步某个库 (如果没有此项,表示同步所有的库)

重启mysql
/usr/local/mysql/support-files/mysql.server restart
备选重启方式:systemctl restart mysqld.service
##登录mysql
mysql -uroot -p
##授权给从数据库服务器从库,用到用户名root,密码
grant replication slave on *.* to 'root'@'192.168.1.71' identified by '从库密码'; 

CREATE USER 'root'@'192.168.1.71' IDENTIFIED by '从库密码';
GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.1.71';

flush privileges;
  
##查看主库的状态
mysql>show master status;

2、slave配置:

vim /etc/my.cnf
server-id=201
innodb_flush_log_at_trx_commit=2
sync_binlog=1
log-bin=mysql-bin-201
重启从库的mysql
/usr/local/mysql/support-files/mysql.server restart
备选重启方式:systemctl restart mysqld.service

mysql -uroot -p

change master to  master_host='192.168.1.70', master_user='root' ,master_password='数据库密码', master_log_file='mysql-bin-200.000167' ,master_log_pos=155;

mysql> start slave;  ##开启从库   (stop slave:关闭从库)
mysql> show slave status; ###Slave_IO_Running,Slave_SQL_Running 都为Yes的时候表示配置成功


3、同步数据库:

master登陆mysql
flush tables with read lock; ##锁表,不再写入
show master status; ##查看并记录binlog的位置和数值
exit
导出数据库:
mysqldump -uroot -p -x testdb> /tmp/testdb.sql

slave,获取数据库文件,确定数据库是ok的,或者初始化数据库
scp -P 22 root@192.168.1.70:/tmp/testdb.sql /tmp
创建数据库
mysql -uroot -p数据库密码 -e "create database testdb"
导入数据库
mysql -uroot -p数据库密码  testdb< /tmp/testdb.sql

master解锁表
unlock tables;  ##解锁表


4、常见问题:

status报错
stop slave;
reset slave;
master_user='root' ,master_password='主库密码', master_log_file='mysql-bin-200.000001' ,master_log_pos=0; ##尝试把master_log_pos改成0
start slave;

reset master; ##慎用

5、mycat的配置文件

可以通过下面的链接下载(1共享分):

https://download.csdn.net/download/icbyboy/88757464

  • 27
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨正同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值