发布时间:2020/4/15 14:49:31 来源:
纵横数据
1. 主设置(master)
修改mysql配置文件,一般在/etc/mysql/my.conf
1 2 3 4 5 6 | server-id=1
log-bin=/ var /lib/mysql/mysql-bin
#binlog- do -db=mysql1 #需要备份的数据库名,如果备份多个数据库,重复设置这个选项 即可
#binlog-ignore-db=mysql2 #不需要备份的数据库名,如果备份多个数据库,重复设置这 个选项即可
#log-slave-updates=1 #这个参数当从库又作为其他从库的主库时一定要加上,否则不会给更新的记录写到binglog里二进制文件里
#slave-skip-errors=1 #是跳过错误,继续执行复制操作(可选)
|
在主mysql中增加2个用来同步的账号
1 2 | mysql>grant replication slave on *.* to 'sync-1' @ '%' identified by '123456' ;
mysql>grant replication slave on *.* to 'sync-2' @ '%' identified by '123456' ;
|
重启msql
1 | mysql>show master status;
|
2. 从设置(slave)
修改mysql配置文件 my.conf,两个从节点配置方式都一样。
1 2 | server-id=2
#log-bin=/ var /lib/mysql/mysql-bi
|
在从mysql中增加命令参数,master_log_file 和master_log_pos 可以在master mysql中用 show master status查询到
1 2 3 | mysql>change master to master_host= '192.168.145.222' ,master_user= 'sync-1' ,master_password= '123456' ,master_log_file= 'mysql-bin.000001' ,master_log_pos=308;
mysql>start slave
mysql>show slave status\G
|
3. 设置中的出现的问题
设置出从的时候,我的主mysql已经有一张表了,当时创建表的binlog二进制日志就没有记录,从mysql无法写入数据,这时候只有手动导入数据库文件到从mysql中;原因是网上教程都是全新安装的主msql和从mysql,不存在已有数据的问题。
1 2 | Last_Errno: 1062
Error 'Duplicate entry ' xxxxx ' for key ' PRIMARY '' on query
|
主键冲突,这个问题比较复杂,应该是有表的设置不对,这个问题后来在Stack Overflow上找到了解决办法
1 2 3 4 5 6 7 8 | # on slave
mysql> stop slave;
mysql> flush privileges;
# on master rest master
mysql> reset master;
# on slave;
mysql> reset slave;
mysql> start slave; 纵横数据游戏防御服务器 游戏显卡服务器 现货 限量特价 速定! CPU E5-2650v2*2 内存 64GB 硬盘 240G 固态硬盘 显卡GTX1050 TI 4G显存 带宽 100M 游戏防御服务器 游戏显卡服务器 欢迎在线客服 QQ 4001886560 482986990
|