主从数据库同步
主从数据库同步
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.结语
如果文章有错还请大佬指出,本文是用来记录学习过程,只做参考。
上述的服务器全部已经被本人关闭。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)