linux服务器mysql数据库同步(两台)


1、主数据库/etc/my.cnf配置增加

server-id=1
log-bin=binlog
log-bin-index=binlog.index

然后重启mysql服务

systemctl restart mysqld.service

查看配置是否正常

​show variables like 'log_bin';

接着在主服务器创建一个从服务器可以登录的mysql账号

mysql>GRANT REPLICATION SLAVE ON *.*TO '用户名'@'从服务器ip' IDENTIFIED BY '密码';

mysql>FLUSH PRIVILEGES;

查看主服务器mysql二进制文件位置及名称

mysql> SHOW MASTER STATUS;

 

2、从数据库my.cnf配置mysql> SHOW MASTER STATUS;增加

log-bin=mysql-bin
server-id=2

接着在mysql中输入

mysql>change master to master_host='服务器ip', master_user='test', master_password='123456', master_port=3306, master_log_file='binlog.000002', master_log_pos=1886991;

查看主从配置是否成功

mysql > START SLAVE; #开启复制

mysql > SHOW SLAVE STATUS\G; #查看主从复制是否成功

(当看到Slave_IO_Running: YES、Slave_SQL_Running:YES才表明状态正常)

3、常见问题解决

(1)主服务器创建从服务器账户出现密码策略问题解决:

查看密码策略

SHOW VARIABLES LIKE 'validate_password%'; 

 

执行下面语句

 set global validate_password_policy=LOW;

set global validate_password_length=6;

到此OK,重新执行GRANT REPLICATION SLAVE ON *.*TO '用户名'@'从服务器ip' IDENTIFIED BY '密码'即可

(2)Slave_SQL_Running不停变为no解决方法

在从数据库my.cnf配置

slave-skip-errors=1062,1053,1146 #跳过指定Last_Sql_Error:error no类型的错误

重启数据库服务

再重新配置Slave_SQL_Running为yes即可解决

(3)Slave_SQL_Running为no解决方法

进入主服务器执行

mysql>show master status;  #查看binlog和master_log_pos

然后进入从库

mysql>stop slave;

mysql>change master to master_log_file='binlog.000002',master_log_pos=93678806;

mysql>start slave;

问题即可解决

4、取消主从复制

主数据库

reset master;

从数据库

stop slave;

reset slave all;


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM