主从数据库同步
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.结语
如果文章有错还请大佬指出,本文是用来记录学习过程,只做参考。
上述的服务器全部已经被本人关闭。