環境說明:
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均屬錯誤)。