当网站并发量大时,最先扛不住的可能是数据库了。所以需要多台服务器进行分担压力。这时会用到mysql主从同步,把mysql服务器数据分到多台服务器中。
三、主服务器配置
3.1 编译mysql配置文件,开启bin-log日志,并重启mysqld让配置文件生效
vim /etc/my.cnf #[mysqld]中增加代码 server-id=1 log_bin=mysql-bin #不同步数据库 binlog-ignore-db=mysql binlog-ignore-db=information_schema binlog-ignore-db=performance_schema #只仅同步数据库 binlog-do-db=zixuephp-db #mysql复制模式,三种:SBR(基于sql语句复制),RBR(基于行的复制),MBR(混合模式复制) binlog_format=MIXED #混合模式复制,可靠性更高
systemctl restart mysqld
3.2从主服务器中创建从库用户
mysql -uroot -p123456 grant replication slave on *.* to 'slave'@'%' identified by '123456'; flush privileges;
3.3锁住主库表
flush tables with read lock;
3.4查看主库状态这里的File和Position会在从库中用到
这里的File和Position会在从库中用到
show master status \G
3.5备份所有数据
备份主库中的所有数据到从库中,保持当前主库和从库数据一致
mysqldump -uroot -p123456 >/root/back.sql
#从库导入来自主库数据 source back.sql
3.6解锁主库表
unlock tables;
四、从库配置
4.1配置从库my.cnf配置文件
vim /etc/my.cnf #[mysqld]中增加代码 server-id=2 log_bin=mysql-bin binlog_format=MIXED
systemctl restart mysqld
4.2从库设置slave复制主库数据
master_log_file文件尾主库中 show master status 中的File,master_log_post为主库中Postion的值
change master to master_host='主mysql服务器ip',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=19416434;
4.3启动从库复制
start slave;
4.4查看从库是否同步上主库
当Slave_IO_Running: Yes Slave_SQL_Running: Yes 都为yes同步成功
show slave status;
4.5在主库中查看从库是否连接到
show processlist \G
4.6其他调试语句
#查看错误 show warnning; #查看主库状态 show master status \G #查看从库状态 show slave status \G #重置主记录信息 reset master; #重置从记录信息 reset slave; #停止始从 stop slave; #开始从 start slave; #清空从所有连接、信息记录 reset slave all; #删除从 change master to master_host=' ';
4.7删除主从同步
#从库 stop slave; reset slave all; show slave status \G #清除从库配置文件的配置 #主库 reset master; #清除主库配置文件的配置 #清除mysql.user从库账号 show master status \G
到此这篇关于centos7 mysql5.7主从同步配置就介绍到这了。不为失败找借口,只为成功找方法。更多相关centos7 mysql5.7主从同步配置内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!