主从数据库同步

主从数据库同步

1.在主服务器master上配置开启Binary log

1.因为我的MySQL5.5是rpm安装的所以在/etc/文件夹下是没有my.cnf文件的,只能到/usr/share/mysql/文件夹把文件my-medium.cnf拷贝到/etc/文件夹下并改名为my.cnf.

2.编辑文件

vim /etc/my.cnf   #编辑文件

#在[mysqld]下面添加
server-id=1
log-bin=master-bin
log-bin-index=master-bin.index

service mysql restart   #然后重启sql服务

3.检测配置效果

mysql> SHOW MASTER STATUS;

在这里插入图片描述

2.在从服务器上配置开启Relay log

1.同样编辑文件my.cnf

server-id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin

service mysql restart   #同样重启

3.配置两个数据库的关联

1.切换到主,进入MySQL

mysql> create user repl;   #创建用户

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'从xxx.xxx.xxx.xx' IDENTIFIED BY 'mysql'; 
#给权限

mysql> flush privileges;
#刷新

2.切换到从,

mysql> change master to master_host='主xxx.xxx.xxx.xx',master_port=3306,master_user='repl',master_password='mysql',master_log_file='master-bin.000001',master_log_pos=0;

对应主的文件和主数据户实例的ip地址

3.然后开启同步

mysql> stop slave;

mysql> show slave status \G; 

在这里插入图片描述

​ 这里是原本MySQL5.65版本下的同步,后来发现io异常 Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: ‘Slave can not handle replication events with the checksum that master is configured to log; the first event ‘master-bin.000001’ at 4, the last event read from ‘/master-bin.000001’ at 120, the last byte read from ‘/master-bin.000001’ at 120.’

​ 发现是 由于 master 用的 mysql5.6 , binlog_checksum 默认设置的是 crc32。 如果slave用的 5.5 ,要将master的 binglog_checksum设置为 none。

后来直接装了MySQL5.5版本,就直接成功了。主从数据库版本应该保持一致,因为这是第一次尝试,所以很多地方出错。

在这里插入图片描述

4.结语

如果文章有错还请大佬指出,本文是用来记录学习过程,只做参考。
上述的服务器全部已经被本人关闭。

发布了3 篇原创文章 · 获赞 0 · 访问量 587

猜你喜欢

转载自blog.csdn.net/qq_43203949/article/details/104521256