数据库
首页 > 数据库> > mysql 主从同步

mysql 主从同步

作者:互联网

一、主从数据库都新建一个用户如mysync

1、创建新用户:mysync 密码:Abc123,限制IP段登录,并且只对testsync数据库有增删改查权限

CREATE USER 'mysync'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Abc123';
grant select,insert,update,delete on testsync.* to 'mysync'@'192.168.42.%' with grant option;
flush privileges;

2、修改主(master)数据库my.cnf配置

打开主服务器。去修改配置文件,设置日志文件名称和服务器ID,以及需要复制的数据库添加binlog日志,设置ID

server-id = 5 #本机序号
log-bin = mysql-bin-1 #开启binlog
sync_binlog = 1 #每次事务提交,MySQL都会把binlog刷下去,是最安全但是性能损耗最大的设置。
binlog_checksum = none
binlog_format = mixed #binbog模式为混合模式
slave-skip-errors = all #跳过错误,继续执行复制操作
binlog-do-db=testsync #同步的数据库

重启,进入mysql命令行
show master status; //查看作为master的状态
image
其中binlog-do-db就是刚才配置的binlog-do-db,而File和Position要记着,后面配置从库(slave)要用到

3、修改从(slave)数据库my.cnf配置

server-id = 6 #本机序号,不能为1/主库ID
log-bin = mysql-bin-1 #开启binlog
sync_binlog = 1 #每次事务提交,MySQL都会把binlog刷下去,是最安全但是性能损耗最大的设置
binlog_checksum = none
binlog_format = mixed #binbog模式为混合模式
replicate-do-db=testsync //改为同步的数据库
log-slave-updates=1 #从库一定要加上

重启,进入mysql命令行
输入stop slave;
image
输入:(注意:以下的换行在命令行输入时真的要回车换行,有些行有逗号也真的要输入)
change master to
master_host='192.168.42.5',
master_user='testsync ',
master_password='Abc123',
master_log_file='mysql-bin-1.000008',
master_log_pos=151;

其中master_host是master的ip,master_user和master_password是master库用于同步的用户和密码,master_log_file和master_log_pos都是master的信息(参考master图)

启动从库
start slave;

重启数据库
登录数据库使用命令查看作为slave的配置和状态,其中Slave_IO_Running和Slave_SQL_Running值应为Yes
show slave status\G
image

标签:binlog,同步,slave,log,数据库,master,mysql,主从
来源: https://www.cnblogs.com/cjq999/p/16463630.html