mysql+mycat主主备份,读写分离。

	我的拓扑:
			MySQL1 ,ip:192.168.1.19
			MySQL2 ,ip:192.168.1.20
			mycat , ip: 192.168.1.15

#我的MySQL和mycat都是用yum安装的,配置文件位置可能不同。
主备部署
安装数据库需要的yum源

yum install centos-release-openstack-pike
yum makecache

一、主库配置
两台MySQL和mycat保证在同一网段,可ping通,这是前提哦。
编辑/etc/my.cnf (MySQL的主配置文件)

log_bin=mysql-bin    #开启二进制日志
server_id=1         #设置server id号

更改完配置文件记得重启MySQL服务;

systemctl restart mysqld

进入MySQL

mysql -uroot -p

创建同步账号,可以让MySQL2通过远程连接同步用的账户,不需要很多权限。

grant replication client,replication slave on *.* to rep@'从库ip' identified by 'root';

查看主库状态

show master status\G


二、从库配置
编辑/etc/my.cnf 在[mysqld]下边添加

log_bin=mysql-bin
server_id=2
relay_log=mysql-relay-bin    #开启中继日志
log_slave_updates=1
read_only=1    #只读模式
#replicate-do-db = 123            指定那些库需要复制
#replicate-ignore-db = mysql                      不复制的库
#replicate-ignore-db = performance_schema                        不复制的库
#replicate-ignore-db = information_schema  不复制的库
#replicate-wild-do-table = 数据库名字.表名字 // 所要同步的数据库的单个表,可以加多行就是多个

从库关联主库

change master to master_host='主库ip',master_user='远程登录用户',master_password='配置一个密码';

检查从库状态

show slave status\G;

红色框内一定要是两个yes
红色框内一定要是两个yes,否则无法同步,如果有一项或两项是NO,那么,重启主数据库,再次查看,可以试试多重启几次,如若还是不行,重新修改配置文件 /etc/my.cnf 再重启。

做主主备份不需要修改配置文件,只需要将主库的关联库改为从库。

stop slave;

先关闭slave才能进行下方配置。
创建远程账号

grant replication client,replication slave on *.* to rep@'从库ip' identified by 'root';

关联从库,也就是将从库当做主库

change master to master_host='主库ip',master_user='rep',master_password='root';

做完后重启数据库

systemctl restart mysqld

在进入数据库查看slave状态

slave status\G;

在这里插入图片描述
三、mycat配置
安装mycat
下载压缩包

wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161

解压

tar -zvxf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

更改名字

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mycat是一个开源的分布式数据库中间件,主要用于在分布式环境下提供高性能和高可用的数据库访问服务。它可以实现数据的分片、负载均衡、读写分离等功能。然而,Mycat并不适合所有的应用场景。 根据引用的内容,如果你的应用场景中存在非分片字段查询、分页排序、表JOIN操作或者分布式事务,就需要慎重考虑是否使用Mycat。因为这些操作可能会对Mycat的性能和可用性产生影响。 另外,根据引用的内容,在停止主节点时,Mycat不会自动调度写请求至从节点。这意味着当主节点停止时,写请求可能会失败,导致连接错误。 根据引用的内容,在Mycat服务器上连接和测试时,查询操作会在从服务器上执行,并通过@@server_id显示所连接的服务器ID。 因此,对于你提到的问题,需要注意Mycat的适用场景和其在主从节点操作上的特点。如果你的应用场景不涉及到上述不适合的操作,并且可以容忍在主节点停止时可能出现的写请求失败情况,那么Mycat可以作为一个分布式数据库中间件的选择。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MySQLMyCat](https://blog.csdn.net/qq_38419276/article/details/117134729)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值