环境说明: centOS6.5 mysql 5.6.35 主库master 192.168.154.6 备库slave 192.168.154.7 1.永久关闭主库和备库的防火墙
开启: chkconfig iptables on 关闭: chkconfig iptables offMySQL设置主-从复制:master–>slave
2、修改主服务器master:
#vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[必须]启用二进制日志 server-id=1 //[必须]服务器唯一ID binlog-do-db = dbname (要同步的数据库名) binlog-ignore-db= mysql,information_schema3、修改从服务器slave:
#vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[不是必须]启用二进制日志 log_slave_updates=1 server-id=2 //[必须]服务器唯一ID binlog-do-db = dbname (要同步的数据库名) binlog-ignore-db= mysql,information_schema4、重启两台服务器的mysql
service mysqld restart5、在主服务器上授权slave:
grant replication slave on *.* to 'root'@'192.168.154.%' identified by '632013';6、登录主服务器的mysql,查询master的状态
mysql>show master status;7、配置从服务器Slave:
mysql>change master to master_host='192.168.154.6', master_user='root', master_password='632013', master_port=3306, master_log_file='mysql-bin.000007', master_log_pos=120; Mysql>start slave; //启动从服务器复制功能8、检查从服务器复制功能状态:
mysql> show slave status\G注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。
注意事项 这里可以看到 slave_IO_Running 是 NO 在底下可以看到我的错误信息提示 server_id was not set 因为我中途重置了一次 master 所以 server_id 被置空了 设置一下server_id 然后 重启服务就可以了
MySQL设置主-主复制:master<–>slave
思路:在两台服务器上各自建立一个具有复制权限的用户;让两个数据库互为主从的关系
1、修改配置文件:
把上面的连个数据库的配置文件重新配置,其配置如下
# 主服务器上 [mysqld] server-id = 1 log-bin = mysql-bin binlog-do-db = dbname (要同步的数据库名) binlog-ignore-db= mysql,information_schema relay-log = relay-mysql relay-log-index = relay-mysql.index auto-increment-increment = 2 #每次跳两个数。 auto-increment-offset = 1 #从1开始。 # 从服务器上 [mysqld] server-id = 2 log-bin = mysql-bin binlog-do-db = dbname (要同步的数据库名) binlog-ignore-db= mysql,information_schema relay-log = relay-mysql relay-log-index = relay-mysql.index auto-increment-increment = 2 auto-increment-offset = 2 2.重启两台服务器的mysql service mysqld restart 3.授权服务器复制功能 master: mysql> GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.154.%' IDENTIFIED BY '632013'; mysql> flush privileges; slave: mysql> GRANT REPLICATION SLAVE ON *.* TO 'admin'@'192.168.154.%' IDENTIFIED BY '632013'; mysql> flush privileges 4.登录主服务器的mysql,查询master的状态 mysql>show master status; 5.置两台服务器的复制位置 在192.168.154.7上配置从服务器Slave: mysql>change master to master_host='192.168.154.6', master_user='admin', master_password='632013', master_port=3306, master_log_file='mysql-bin.000007', master_log_pos=120; 在192.168.154.6配置主服务器master: mysql>change master to master_host='192.168.154.7', master_user='root', master_password='632013', master_port=3306, master_log_file='mysql-bin.000007', master_log_pos=120; 6、在两台服务器上检查从服务器复制功能状态: Mysql>start slave; //启动从服务器复制功能注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。
参考文章 http://blog.csdn.net/goustzhu/article/details/9339621
