mysql 主从复制及相关故障说明

最近公司接触mysql,需要搭建主从复制结构。 假设主库192.168.1.13,备库192.168.1.14.

2个库都已经安装好mysql verson: 5.6.22   Debian 3.2.65

 

1.首先要把主库上相应的数据库备份出来,备库建立对应的数据库名,并source进去。

mysqldump -uroot -p test >test_name_1214.sql

备库创建同名数据库 create database `test` default character set utf8;

这里尤其要注意2个库的字符集一定要一样,不一样要修改:alter database test default character set utf8;

 

2. 在主库和备库的配置文件中加入参数:

/etc/my.cnf

 主库:

log-bin=mysql-bi

server-id=1

备库:

log-bin=mysql-bin
server-id=2

server-id参数默认是1 ,这里有个要求是 主库和备库的server-id不能一样。

 

3.重启2台机器的mysqld服务

/etc/init.d/mysql restart

 

4.在主库上增加一个复制账户:

grant replication slave on *.* to repl@'192.168.1.%' identified by 'repl.123';

repl即为复制同步账户。

 

5.在主库上查询log日志和pos,记录文件名和位置

 mysql>show master status;
   +------------------+----------+--------------+------------------+
   | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
   +------------------+----------+--------------+------------------+
   | mysql-bin.000005 |      120 |              |                  |
   +------------------+----------+--------------+------------------+

 

6.在从服务器上配置复制参数:

change master to master_host='192.168.1.13',master_user='repl',master_password='repl.123',master_log_file='mysql-bin.000005',master_log_pos=120;

 

7.查看从服务器上的状态:

mysql> show slave status\G

注意   Slave_IO_Running: Yes    //此状态必须YES
          Slave_SQL_Running: Yes     //此状态必须YES

至此算是结束。

 

简述在实际中遇到报错:

Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids

说server-id 主从库一样,都是1,在数据库里查询了下一下,确实一样,那么证明my.cnf里的配置没有生效。

mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id     | 1    |
+---------------+-------+
1 row in set (0.00 sec)

关闭slave ,set global server_id=2 ,然后重启slave。再看就正常。

但是默认读取配置文件的流程是:

/etc/my.cnf、datadir/my.cnf,USER_HOME/my.cnf。

find / -name "my.cnf"  发现 /usr/local/mysql也有my.cnf ,删除之 ,之后再无报错。

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

PS:  第二种报错,报“master and slave has equal MySQL server UUIDs”

两个server的uuid想重复了,就是数据目录下的auto.cnf 这个文件里的东西重复了,可以删除这个文件,重启,报错解决。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东方-phantom

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值