MYSQL主主複製的搭建
前言:最近一直在忙於mysql很久沒有進行更新了文件了,學霸都快成學渣了,剛好公司搭建了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為源資料庫進行同步,如下操作:
- 鎖定資料庫,檢視狀態
mysql> FLUSH TABLES WITH READ LOCK; Query OK, 0 rows affected (0.00 sec)
+------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000008 | 107 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec) |
顯示源資料庫處於8號binlog的107位置;
- 備份資料庫
[root@mysql01 ~]# mysqldump --user=root -p retail> /tmp/retail.sql Enter password: |
- 解鎖資料庫
mysql> UNLOCK TABLES;
- 在mysql02上面建立一個retail的資料庫,並進行匯入操作;
mysql> create database retail; mysql -uroot -p retail < /tmp/retail.sql #匯入retail資料庫 |
- 檢視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; |
2.5 啟動服務,在mysql01和mysql02上面執行:start slave
2.6 檢查狀態
mysql> show slave status\G; *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.47.149 Master_User: server2 Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000008 Read_Master_Log_Pos: 107 Relay_Log_File: mysql02-relay-bin.000015 Relay_Log_Pos: 253 Relay_Master_Log_File: mysql-bin.000008 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: retail Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 107 Relay_Log_Space: 411 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 1 |
Slave_IO_Running: Yes
Slave_SQL_Running: Yes 表示主主配置完成;
三、測試
在mysql02上面建立一個表
在mysql01上面進行檢視
經過驗證主主同步成功搭建;
*********************************************************************************************************************本文作者:JOHN QQ:1916066696 (請備註資料庫)
ORACLE技術部落格:ORACLE 獵人筆記 http://blog.itpub.net/12679300/
請掃描加微訊號!
******************************************************************************************
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12679300/viewspace-1313645/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 5.5 主主複製搭建流程MySql
- MYSQL主從複製的搭建MySql
- mysql主從複製搭建MySql
- MySQL的主從複製與MySQL的主主複製MySql
- MySQL主從複製與主主複製MySql
- MySQL 主主複製MySql
- mysql5.7主從複製,主主複製MySql
- MySQL主從複製、半同步複製和主主複製MySql
- MySQL的主從複製、半同步複製、主主複製詳解MySql
- mysql主從複製的理解和搭建MySql
- MySQL主從複製、半同步複製和主主複製概述MySql
- mysql主主複製(雙主複製)配置步驟MySql
- Mysql主從複製原理及搭建MySql
- 簡單搭建MySQL主從複製MySql
- MySQL(14)---Docker搭建MySQL主從複製(一主一從)MySqlDocker
- 配置mysql5.5主從複製、半同步複製、主主複製MySql
- MySQL-主從複製之搭建主資料庫MySql資料庫
- MySQL5.7主從複製-半同步複製搭建MySql
- Windows 環境下,MySQL 的主從複製和主主複製WindowsMySql
- windows環境下,Mysql的主從複製和主主複製WindowsMySql
- mysql 5.7 主從複製搭建及原理MySql
- MySQL主主複製(雙主複製)配置過程介紹MySql
- mysql資料庫的主從複製和主主複製實踐MySql資料庫
- MySQL的主從複製MySql
- MySQL 主從複製MySql
- 【MySql】主從複製MySql
- MySQL主從複製MySql
- mysql複製--主從複製配置MySql
- docker-compase搭建mysql主從複製DockerMySql
- mysql 主從複製搭建詳細步驟MySql
- MySQL(二):主從複製結構、半同步複製、雙主複製結構、利用SSL實現安全的MySQL主從複製MySql
- mysql之 mysql 5.6不停機主主搭建(活躍雙主基於日誌點複製)MySql
- Keepalived+Mysql配置主主複製MySql
- mysql主從複製+主備切換MySql
- 基於 Docker 的 MySQL 主從複製搭建(真正弄懂)DockerMySql
- mysql 5.7 多主一從的多源複製搭建MySql
- 使用XtraBackup搭建mysql主從複製的操作步驟MySql
- MySQL5.1版本的主從複製搭建MySql