您好,登錄后才能下訂單哦!
設置MySQL服務器之間設置Master-Master復制的方法?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!
在此設置中,如果在任一服務器上進行的任何更改將都在另一臺服務器上更新。
設置細節:
Master-1: 192.168.1.15 Master-2: 192.168.1.16 Database: mydb
步驟1:設置MySQL Master-1服務器
編輯MySQL配置文件并在[mysqld]部分下添加以下代碼。
# vim /etc/my.cnf
[mysqld] log-bin=mysql-bin binlog-do-db=mydb server-id=1
重啟MySQL服務器以使更改生效。
# service mysqld restart
在Master-1服務器上創建一個具有REPLICATION SLAVE權限的mysql帳戶,復制客戶端將連接到master。
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%' IDENTIFIED BY 'secretpassword'; mysql> FLUSH PRIVILEGES;
所有表上都有block write語句,因此備份后不能進行任何更改。
mysql> use mydb; mysql> FLUSH TABLES WITH READ LOCK;
使用以下命令檢查當前二進制日志文件名(File)和當前偏移量(Position)值。
mysql> SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000003 | 332 | mydb | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
上面的輸出顯示當前的二進制文件使用的是mysql-bin.000003,偏移值為332。記下這些值,以便在下一步中在master-2服務器上使用。
備份數據庫并將其復制到另一個mysql服務器。
# mysqldump -u root -p mydb > mydb.sql # scp mydb.sql 192.168.1.16:/opt/
完成備份后,從表中刪除READ LOCK,以便進行更改。
mysql> UNLOCK TABLES;
步驟2:設置MySQL Master-2服務器
編輯mysql Master-2配置文件并在[mysqld]部分下添加以下值。
#vim /etc/my.cnf [mysqld] log-bin = mysql-bin binlog-do-db = mydb server-id = 1
server-id始終為非零數值。這些值永遠不會與其他主服務器或從服務器相似。
重啟MySQL服務器,如果已配置復制,請在啟動時使用-skip-slave-start,不要立即連接到主服務器。
#service mysqld restart
恢復從主服務器獲取的數據庫備份。
#mysql -u root -p mydb </opt/mydb.sql
在Master-1服務器上創建一個具有REPLICATION SLAVE權限的mysql帳戶,復制客戶端將連接到master。
mysql> GRANT REPLICATION SLAVE ON *.*''repl_user'@'%'IDENTIFIED BY'secretpassword'; mysql> FLUSH PRIVILEGES;
使用以下命令檢查當前二進制日志文件名(File)和當前偏移量(Position)值。
mysql > SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 847 | mydb | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
上面的輸出顯示當前二進制文件使用mysql-bin.000001,偏移值為847。記下這些值以在步驟3中使用。
使用以下命令在從屬服務器上設置選項值。
mysql> CHANGE MASTER TO MASTER_HOST ='192.168.1.15', - > MASTER_USER ='repl_user', - > MASTER_PASSWORD ='secretpassword', - > MASTER_LOG_FILE ='mysql-bin.000003', - > MASTER_LOG_POS = 332;
步驟3:完成MySQL Master-1的安裝
登錄MySQL Master-1服務器并執行以下命令。
mysql> CHANGE MASTER TO MASTER_HOST ='192.168.1.16', MASTER_USER ='repl_user', MASTER_PASSWORD ='secretpassword', MASTER_LOG_FILE ='mysql-bin.000001', MASTER_LOG_POS = 847;
步驟4:在兩臺服務器上啟動SLAVE
在兩臺服務器上執行以下命令以啟動復制從屬進程。
mysql> SLAVE START;
MySQL Master-Master Replication已在您的系統和工作模式下成功配置。要測試復制是否正常,請在任一服務器上進行更改,并檢查更改是否反映在其他服務器上。
感謝各位的閱讀!看完上述內容,你們對設置MySQL服務器之間設置Master-Master復制的方法大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。