主從搭建步驟如下:
設定主服務器爲:192.168.200.7從服務器:192.168.202.212
1)確定要分配的ID值,必須是彼此不同的64位整數。
2)從服務器上必須要在主服務器上有一個具備足夠權限的帳戶,從服務器將使用這個帳戶去連接主服務器並請求服務器把二進制變更日誌發送給它。創建帳戶:
mysql>GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO 'slave_user'@'192.168.202.212' IDENTIFIED BY 'slave_pass';
3)把主服務器上的數據拷貝到從服務器上以完成主、從服務器之間最初的同步:一種辦法是先在主服務器主機上製作一份備份,再把這個備份加載到從服務器上去。另一種辦法是通過網絡把各有關數據庫從主服務器全部拷貝到從服務器上,可以用Load data from master語句來建從服務器。在這裏用第一種,無論用哪一種辦法,從開始製作備份到主服務器重新配置好二進制日誌功能,都必須保證在主服務器上沒有發生任何修改操作。
4)關停主服務器(如果正運行)
5)對主服務器的配置進行修改----把它的鏡像ID告訴它進激活二進制日誌功能
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
6)重新啓動主服務器;如果在啓動之前有二進制變更日誌,開啓後用reset master語句清除。
7)關停從服務器(如果在運行)
8)對從服務器進行配置,最好使用默認端口號:
[mysqld]
server-id = 2 #slave_server_id
master-host = 192.168.200.7 #master-host
master-user = slave_user
master-password = slave_pass
log_bin = /var/log/mysql/mysql-bin.log
注:slave_user和slave_pass值是在主服務器爲從服務器創建的那個帳戶的用戶名和密碼,但是這樣是不安全的,因爲配置文件其它用戶也可以讀取,所以應該把這幾行添加到一個只有mysql管理員登錄帳戶才能訪問的選項文件裏:
[mysqld]
!include = /var/lib/mysql/myuser.cnf
vim /var/lib/mysql/myuser.cnf
master-user = slave_user
master-password = slave_pass
9)配置完成後重新啓動服務器。
然後登錄mysql> start slave;如果沒有錯誤,則成功。
10)檢查主從同步,如果您看到Slave_IO_Running和Slave_SQL_Running均爲Yes,則主從複製連接正常。
mysql>show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.200.7
Master_User: slave_user
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 106
Relay_Log_File: mysqld-relay-bin.000004
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
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: 106
Relay_Log_Space: 552
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:
1 row in set (0.00 sec)