MySQL主主複製的搭建

來源:互聯網
上載者:User

MySQL主主複製的搭建

前言:最近一直在忙於MySQL很久沒有進行更新了文檔了,學霸都快成學渣了,剛好公司搭建了MySQL的主主複製,順便把文檔發出來。希望能夠幫到大家!

生產環境MySQL主主同步主鍵衝突處理

MySQL + KeepAlived + LVS 單點寫入主主同步高可用架構實驗

MySQL 主主同步配置

CentOS 6.3下MySQL主從複製筆記

Linux下的MySQL主主複製

一、環境說明:

IP

主機名稱

資料庫名

串連使用者

密碼

 

192.168.47.179

Mysql01

retail

server01

server01

 

192.168.47.178

Mysql02

retail

server02

server02

 

二、搭建步驟

2.1 建立資料的串連使用者

Mysql01上面建立串連使用者server01,並且只能通過192.168.47.178進行串連;

指令碼:mysql> GRANT REPLICATION SLAVE ON retail.* TO 'server01'@'192.168.47.178 ' IDENTIFIED BY 'server01';

Mysql02上面建立串連使用者server02,並且只能通過192.168.47.149進行串連;

指令碼:mysql> GRANT REPLICATION SLAVE ON retail.* TO 'server02'@'192.168.47.179 ' IDENTIFIED BY 'server01';

2.2 修改mysql的參數檔案

修改Mysql01的參數檔案,在MySQL的主設定檔預設為/etc/my.cnf,修改/添加如下內容

server-id = 10

 log-bin = mysql-bin

 replicate-do-db = retail

 auto-increment-increment = 2

 auto-increment-offset = 1
 

修改之後,重啟msyql生效:service mysqld restart

修改Mysql02的參數檔案,在MySQL的主設定檔預設為/etc/my.cnf,修改/添加如下內容

server-id = 20

 log-bin = mysql-bin

 replicate-do-db = retail

 auto-increment-increment = 2

 auto-increment-offset = 2

參數說明:

a、server-id資料庫的進行資料同步的時候用於標識該語句最初是從哪個server寫入的,在進行主主或主從的搭建中,都需要填寫;

b、auto-increment-increment:在資料庫應用,我們經常要用到唯一編號,以標識記錄。在MySQL中可通過資料列的AUTO_INCREMENT屬性來自動產生。為避免兩台主要資料庫產生的編碼重複了,所以需要設定該值,本案例用到兩台伺服器,所以auto-increment-increment值設為

2.3 複製其中的一台伺服器的資料庫到另外一台伺服器

因為環境是全新搭建的,所以兩個的環境都是一樣的,並需要進行資料的初始化工作;

需要的話可以通過以下步驟進行操作,以Mysql01為來源資料庫進行同步,如下操作:
1.鎖定資料庫,查看狀態

mysql> FLUSH TABLES WITH READ LOCK;

Query OK, 0 rows affected (0.00 sec)

 

mysql> SHOW MASTER STATUS;

+------------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000008 | 107 | | |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

顯示來源資料庫處於8號binlog的107位置;

1.備份資料庫

[root@mysql01 ~]# mysqldump --user=root -p retail> /tmp/retail.sql

Enter password:

1.解鎖資料庫

mysql> UNLOCK TABLES;

2.在mysql02上面建立一個retail的資料庫,並進行匯入操作;

mysql> create database retail;

mysql -uroot -p retail < /tmp/retail.sql #匯入retail資料庫
 
1.查看mysql02資料庫的狀態

 

mysql> SHOW MASTER STATUS;

+------------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000009 | 107 | | |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

顯示備份檔案位於9號binlog的107位置;

2.4 進行主主的通訊串連;

a、在mysql01上面進行使用者和binlog的確認

mysql> CHANGE MASTER TO MASTER_HOST='192.168.47.178',MASTER_USER='server02',MASTER_PASSWORD='server02', MASTER_LOG_FILE='mysql-bin.000008',MASTER_LOG_POS=107;

b、在mysql02上面進行使用者和binlog的確認

mysql> CHANGE MASTER TO MASTER_HOST='192.168.47.179',MASTER_USER='server01',MASTER_PASSWORD='server01', MASTER_LOG_FILE='mysql-bin.000009',MASTER_LOG_POS=107;

更多詳情見請繼續閱讀下一頁的精彩內容:

  • 1
  • 2
  • 下一頁

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.