linux下mysql5.7主从同步
两台mysql5.7版本需要主从同步
server1 主 centos7 mysql5.7 192.168.0.6
server2 从 centos7 mysql5.7 192.168.0.7
分别打开3306端口(主要好测试,如在生产环境,建议打开端口时注意3306的安全)
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
安装好mysql5.7好
添加好可以远程查看的root账户方法(主要是本地测试,生为环境中可以不加)
配置server1主库上,编辑/etc/my.cnf文件,在[mysqld]下加入
server-id=1
innodb_flush_log_at_trx_commit=2
sync_binlog=1
log-bin=mysql-bin
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
#binlog-do-db=home # 这个表示只同步home库,你也可以多加几个一行一个库(如果没有此项,表示同步所有的库)
重启mysql
systemctl restart mysqld.service
重启后登录mysql,创建一个loshub的用户,密码为loshub123258,并取得REPLICATION SLAVE权限
create user 'loshub'@'192.168.0.7' identified by 'loshub123258';
grant replication slave on *.* to 'loshub'@'192.168.0.7';
flush privileges;
quit
重启mysql
systemctl restart mysqld.service
重启后登录mysql输入
show master status;
File
Position
mysql-bin.000002
679
查看这两个的值,每台机都不一样
配置server2从库,编辑/etc/my.cnf文件,在[mysqld]下加入
server-id=2
#log-bin=mysql-bin
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
replicate-ignore-db=sys
innodb_flush_log_at_trx_commit=2
sync_binlog=1000
slave_parallel_workers=1
slave_parallel_type=logical_clock
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=ON
重启mysql
systemctl restart mysqld.service
登录从的mysql输入以下代码
stop slave;
change master to master_host='192.168.0.6',
master_user='loshub' ,master_password='loshub123258',
master_log_file='mysql-bin.000002',
master_log_pos=679;
flush privileges;
start slave;
查看有无同步,show slave status \G;,都是yes就同步了
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如出现Slave_SQL_Running: No解决方法
stop slave ;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave ;
版权申明
本文系作者 @天边的云 原创发布在Loshub站点。未经许可,禁止转载。
暂无评论数据