当前位置:Gxlcms > 数据库问题 > MySQL主从同步总结

MySQL主从同步总结

时间:2021-07-01 10:21:17 帮助过:1人阅读

)、从服务器(slave)的数据库版本不能夸大版本,可以小版本的差异。但是从服务器的mysql版本尽量不要低于mastermysql版本。负责需要在master中加入binlog-checksum = none(由于5.6使用了crc32binlogchecksum。除了把master的设置从crc32改到non)一般这样的错误代码:Slave can not handle replication events with the checksum that master is configured to log

2、 master需要开启一个远程访问的用户grant all on *.* to jack@192.168.88.99 identified by "123";  (all代表拥有所有权限,可自行设置,第一个*代表某个数据库,*则是所有数据。第二个*代表某个数据库下的某个表,*代表所有表 jack为用户名,可以自行取名,192.168.88.99访问ip ,如果想所有的ip都可以访问,则需要设置成’%’。123则是你的密码,密码不建议太长,也不建议太短,因为数据库会把长的密码自动截取,短的密码在主从同步中会有错误信息);

3、 masterconfig配置文件中需要制定server-id = 1; log-bin=mysql-bin;或者server_id=1; log_bin=mysql-bin;根据mysql版本而定。server-id = 1;数据库的唯一标示;log-bin=mysql-bin;开启服务器的日志文件,这个必须要。因为数据的同步都是根据日志文件。

4、 slaveconfig配置文件需要server-id=2;master-host=主服务器的IP;master-user=之前设置的账号;master-password=之前设置的密码;master-port=3306;

5、 slaveRead_Master_Log_Pos必须和当前master同步,假设masterpostion10000,则Read_Master_Log_Pos=10000Master_Log_File必须和当前的master日志文件同步

待研究问题:

1、 假设master当机了,现在启用slave进行数据的读写,那怎么样才能让主服务器更新这些数据。(目前想到的办法就是把从服务的日志文件导出,然后导入带主服务器,前提是master必须重新reset master以保证开启新的日志文件)。

2、 当slave意外有写入操作时,主从同步会不再进行。

一般的操作:

reset master  清空所有日志文件,默认到mysql-bin.000001

show master status  查看当前的日志文件信息

stop slave 停止主从同步

start slave 开始主从同步

change master to ……. 设置从服务器的配置信息

show slave status\G 查看从服务器的配置信息

flush privileges 刷新权限  当你设置了信息的用户,会修改了用户权限,必须刷新权限

flush logs  刷新日志文件,相当于生成新的日志文件

show master logs查看日志文件信息

 

MySQL主从同步总结

标签:

人气教程排行