环境说明:
centOS6.5
mysql 5.6.35
主库master 192.168.154.6
备库slave 192.168.154.7
1.永久关闭主库和备库的防火墙
开启: chkconfig iptables on
关闭: chkconfig iptables off
MySQL设置主-从复制: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_schema
3、修改从服务器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_schema
4、重启两台服务器的mysql
service mysqld restart
5、在主服务器上授权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.youkuaiyun.com/goustzhu/article/details/9339621