mysql主從複製,主主複製

環境說明:
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.csdn.net/goustzhu/article/details/9339621

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章