Mysql主從復制的配置(雙機互為主從)


目的: 讓兩台mysql服務器可以互為主從提供同步服務.

 

優點:

1. mysql的主從復制的主要優點是同步"備份", 在從機上的數據庫就相當於一個(基本實時)備份庫.

2. 在主從復制基礎上, 通過mysqlproxy可以做到讀寫分離, 由從機分擔一些查詢壓力.

3. 做一個雙向的主從復制, 兩台機器互相為主機從機, 這樣, 在任何一個機器的庫中寫入, 都會"實時"同步到另一台機器, 雙向的優點在於當一台主機發生故障時, 另一台主機可以快速的切換過來繼續服務.

 

步驟:

1. 在兩台機器上添加一個用於從機訪問的帳號, 賦予REPLICATION SLAVE權限.

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY 'slave';

為slave用戶賦予任何數據庫中任何表上的REPLICATION SLAVE權限, 此用戶可以在網絡任意位置訪問, 訪問時以密碼slave標記.

 

當使用的是ubuntu的時候, 需要注意一點, /etc/mysql/my.cnf配置文件下的bind-address = 127.0.0.1這一行需要注釋, 不然從機在請求時是連接不到的.(我的是ubuntu, 其他版linux不知道會不會一樣)

 

為了保證工作的步驟明細, 可以采用在配置完用戶相關信息之后, 在另一台機器上以分配的用戶密碼連接一次, 能成功則能保證當前步驟是正確的.

 

2. 配置服務器編號, 開啟bin-log

編輯mysql配置文件, linux: /etc/mysql/my.cnf,    windows: c:/program files/mysql/mysql 5.0/my.ini

找到[mysqld]這個標簽,

在它的下面有兩行

#server-id               = 1
#log_bin                 = /var/log/mysql/mysql-bin.log

打開這兩行的注釋, 注意這里的server-id是服務器編號, 所以, 兩台服務器上的值要設置的不一樣. 比如1和2

 

3. 使server-id和log-bin的配置修改生效:

sudo /etc/init.d/mysql restart

或者windows下在服務里重啟mysql服務

 

4. 將兩台數據庫服務器的mysql都鎖定

在mysql命令模式下:

FLUSH TABLES WITH READ LOCK;

SHOW MASTER STATUS;

 

此時請保證執行這兩條命令的mysql控制台不要退出.

 

5. 分別重新打開一個mysql控台台, 配置主機

CHANGE MASTER TO

MASTER_HOST = 'host', #另一台機器的地址

MASTER_PORT = 3306, #另一台機器的端口

MASTER_USER = 'slave',#另一台機器上第一步分配的用戶名

MASTER_PASSWORD = 'slave', #另一台機器上第一步分配的密碼

MASTER_LOG_FILE = 'mysql-bin.000001',#另一台機器上執行SHOW MASTER STATUS得到的文件名

MASTER_LOG_POS = 192; #另一台機器上執行SHOW MASTER STATUS得到的偏移量

 

6. 開啟同步

START SLAVE;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM