MySQL主从复制实现读写分离

时间:2022-09-20 15:25:17
mysql的主从复制实现的原理就是binlog日志,那么我们主节点负责数据库写操作,而从节点负责读操作,这样在从节点上不需要使用事务,能够大大提高数据库的性能。那么这个时候面临的问题就是从节点如何来同步主节点数据的问题,就用到了我们之前说过的binlog日志。从节点通过binlog日志来与主节点进行数据同步。
三台节点,一个master,两个slave,规划如下
master 192.168.153.201
slave1 192.168.153.152
slave2 192.168.153.153
三台节点都是使用CentOS6.9操作系统,数据库使用的是mysql5.7。
配置master 1.创建用户并授权,比如我们的用户叫做 repl,创建用户语法如下: create user ‘repl' MySQL主从复制实现读写分离 2.授权。用户必须具备replication slave 权限,除此之外不需要其他的权限 grant replication slave on *.* to 'repl'@'192.168.153.%' identified by 'repl'; MySQL主从复制实现读写分离 3.开启binlog日志 这里可以参考开启binlog日志的文档。
至此,主服务器就配置好了。下面来进行配置从服务器 slave1 1.修改my.inf配置文件 [mysqld]server-id=2relay-log-index=slave-relay-bin.indexrelay-log=slave-relay-bin
2.连接Master change master to master_host='192.168.0.104', //Master 服务器Ip master_port=3306, master_user='repl', master_password='mysql', master_log_file='master-bin.000001',//Master服务器产生的日志 master_log_pos=0;
change master to master_host='192.168.153.201',master_port=3306,master_user='repl',master_password='repl',master_log_file='/var/lib/mysql/mysql-bin.000001',master_log_pos=0;
3.查看状态 show slaves status\G MySQL主从复制实现读写分离 这里关注两个地方,第一个是Slave_IO_Running,第二个是Slave_SQL_Running。这两个必须都为yes才可以启动从节点。那么问题出现在哪里呢,后面会有日志提示
MySQL主从复制实现读写分离 这里是说两台节点的uuid一致,要让这两台机器的uuid不一致才行,那么uuid在哪呢,在我们数据目录下auto.cnf文件中,只要修改这个文件就可以了。
MySQL主从复制实现读写分离 再来查看状态,然后就为yes了。
4.启动 start slave
5.关闭 stop slave
6.重置 reset slave