龚哥哥 - 山里男儿 爱生活、做自己!
MySQL双主_单主_热备份_实时备份
发表于 2015-8-31 | 浏览(6480) | 数据库

6630381670443118394.jpg

两台服务器

主库ip:192.168.1.1
从库ip:192.168.1.2

主库配置、编辑 my.cnf  [mysqld]下添加

server-id=1
log-bin=mysql-bin
relay-log=relay-bin
relay-log-index=relay-bin-index
replicate-do-db=devil #需要备份的数据库
slave_skip_errors = 1062 #忽略错误

#解决互相数据插入自增冲突
auto_increment_offset=1
auto_increment_increment=2

保存重启mysql

从库配置、编辑 my.cnf  [mysqld]下添加

server-id=2
log-bin=mysql-bin
relay-log=relay-bin
relay-log-index=relay-bin-index
replicate-do-db=devil #需要备份的数据库
slave_skip_errors = 1062 #忽略错误

#解决自增冲突
auto_increment_offset=2
auto_increment_increment=2

保存重启mysql

主库配置、进入mysql控制台执行

mysql -uroot -proot

stop slave;

change master to master_host='192.168.1.2',master_user='root',master_password='root';

开启配置
start slave;

查看警告
Show warnings;

查看配置状态
show slave status\G

    以下两项yes表示状态配置成功,如果error有错误根据提示解决:
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes

从库配置、进入mysql控制台执行

change master to master_host='192.168.1.1',master_user='root',master_password='root';

stop slave;

start slave;

Show warnings;

show slave status\G

以下两项yes表示状态配置成功,如果error有错误根据提示解决:
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes

如果以上顺利通过,则可以进行测试了。以下是可能遇到的问题。

日志冲突解决

查看所有二进制日志
SHOW MASTER LOGS;

清空所有二进制日志
RESET MASTER;

网络连接失败

Last_IO_Errno: 1130
1;一般是防火墙开启,拒绝3306端口。或者是配置错误,如用户名或密码
2;还有可能是主库备份帐号的访问权限,进入主库mysql控制台
  use mysql;
  select * from user where user='root';
  update user set host = '%' where user ='root';
  flush privileges;

如果不使用root用户,可以创建一个备份用户

grant replication slave,replication client on *.* to '用户名'@'可执行操作的ip' identified by '密码';

阅读全文

TOP