MySQL主从配置详解

  • A+
所属分类:MySql教程

● 本计算买个云数据,为我的新项目做点安然保障。阿里云,腾讯云转了一圈,两个字太贵。不就数据有备份吗,既然如许那我不如本身来做备份。

● 家里有2个树莓派直接把mysql备份到他们上就好了,网上有教程,这就开整。在segmentfault mysql 这么一搜好几篇,按照他们一说的那么一做,当然是不成功的,如果成功了我就不写这篇文章了。ps:他们的教程都是对的。

● 下面就开端设备主从办事器,和网上教程一样,因为我就是看他们的。

  1. 主设置(master)

修改mysql设备文件,一般在/etc/mysql/my.conf

erver-id=1 //设置mysql的id标识
log-bin=/var/lib/mysql/mysql-bin  //log-bin的日记文件,主从备份就是用这个日记记录来实现的
#binlog-do-db=mysql1 #须要备份的数据库名,假如备份多个数据库,反复设置这个选项 即可
#binlog-ignore-db=mysql2 #不须要备份的数据库名,假如备份多个数据库,反复设置这 个选项即可
#log-slave-updates=1 #这个参数当从库又作为其他从库的主库时必定要加上,不然不会给更新的记录写到binglog里二进制文件里
#slave-skip-errors=1 #是跳过缺点,持续履行复制操作(可选)

在主mysql中增长2个用来同步的账号

mysql>grant replication slave>mysql>show master status; //可以查看主mysql状况
  1. 从设置(slave)
server-id=2
#log-bin=/var/lib/mysql/mysql-bi //从mysql可以不消设置日记文件

在从mysql中增长敕令参数,master_log_file 和master_log_pos 可以在master mysql顶用 show master status查询到

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 //查询状况,Slave_IO_Running 和Slave_IO_Running都为yes表示成功
  1. 设置中的出现的问题
Last_Errno: 1146

设置出从的时刻,我的主mysql已经有一张表了,当时创建表的binlog二进制日记就没有记录,从mysql无法写入数据,这时刻只有手动导入数据库文件到从mysql中;原因是网上教程都是全新安装的主msql和从mysql,不存在已稀有据的问题。

Last_Errno: 1062
Error 'Duplicate entry 'xxxxx' for key 'PRIMARY'' on query

主键冲突,这个问题比较复杂,应该是有表的设置不对,这个问题后来在Stack Overflow上找到了解决办法

# on slave
mysql> stop slave;
mysql> flush privileges;
# on master rest master
mysql> reset master;
# on save;
mysql> reset slave;
mysql> start slave;

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: