首页 > 数据库技术 > 详细

mysql主从复制

时间:2019-02-26 11:47:21      阅读:155      评论:0      收藏:0      [点我收藏+]

版本mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz

原理:master启动一个I/O进程,当数据库发生更改操作时,I/O进程会记录下更改操作的sql语句并保存为日志,slave启动一个I/O进程,一个SQL进程,I/O进程会下载主库的日志放进中继日志里面,SQL进程会来取日志里面的语句去执行,这样就可以异步复制主库的数据

步骤:1,主库先开启log-bin功能并修改server-id的值确保在局域网内唯一(/etc/my.cnf/mysqld)生成日志

           2,主库授权用户复制权限,让从库能够来主库获取日志,GRANT REPLICATION SLAVE ON *.* to ‘rep1‘@‘192.168.8.11‘ identified by ‘test123456‘ 注意,@后面是否可以改成网段或者%有待验证

           3,使用mysqldump -u -p -B 数据库名称 --master-data=1 --events > *.sql 注意:-B是导入数据库时不用先建库,--master-data=1是当备份数据库时进行短暂锁库,并记录下来change master to的数值,方便从库执行change master to时不用指定主库binlog日志的名称跟位置点,因为加了这个参数后,导出的备份数据里面已加有日志名称跟位置点,还有导出备份时最好不要把mysql默认的库也导出来(试过导出并导入从库中,从库的主从复制状态一直不对,后面没导出默认数据库就成功了),况且当没有指定只同步指定数据库时,默认会同步所有数据库。

           4,拷贝备份文件到从库并导入文件scp -P端口 文件 用户@从库IP:/目录      mysql -u -p < *.sql

           5,进入从库执行change master to语句 CHANGE MASTER TO MASTER_HOST=‘172.16.2.10‘, MASTER_PORT=3306, MASTER_USER=‘rep‘, MASTER_PASSWORD=‘oldboy123‘;

           6,检查从库状态 show slave status\G;当Slave_IO_Running: Yes   Slave_SQL_Running: Yes两个yes后即成功

错误排查:MySQL同步故障:" Slave_SQL_Running:No" 两种解决办法  https://blog.csdn.net/heng_ji/article/details/51013710

 

          

mysql主从复制

原文:https://www.cnblogs.com/allmdzz/p/10436161.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!