原來看過MYSQL同步資料的實現,可是自己還沒有動過手,今天沒什麼事就玩一玩,正好在旁邊有另一台空電腦,都在同一個路由器下。哈哈,正好。
不過首先在找設定檔上就把我卡了好久,由於我用的是xampp安裝包,在xampp/mysql/bin目錄下看始終沒有找到my.cnf,在c:windows目錄下也沒有發現,
如,看到的只有一個”my”的快速撥號的東西,又不是檔案,怎麼都打不開。後來找了好久才在網上看到說遇到這種情況需要先開啟editplus,然後再從editplus裡面開啟這個檔案,果然。。。
配置就不詳說了,網上有很多,我原來也轉過一篇。
今天主要是講一下配置主從伺服器需要注意的地方:
首先需要做主從的資料庫必須一模一樣,如果你的資料庫已經運行過一段時間,建議你先刪除所有的二進位記錄檔,包括索引xxx.index這個檔案,否則重啟mysql會出錯。
從伺服器上已經刪除掉所有的二進位記錄檔,當然包括一個master.info這個檔案。這個檔案是用來記錄主伺服器上過來的記錄檔和記錄位置的。如果你不刪除它,它還會按照之前的記錄來做,所以會出問題,我在這裡浪費了很多時間了。
主伺服器診斷:
show processlist;顯示所有的進程。
show master status;顯示主伺服器的記錄檔和指標位置。
mysql> show master status;
+——————+———-+—————-+——————+
File Position Binlog_Do_DB Binlog_Ignore_DB
+——————+———-+—————-+——————+
mysql-bin.000001 603 videoCommunity
+——————+———-+—————-+——————+
1 row in set (0.00 sec)
mysql> show master status\G
*************************** 1. row ***************************
File: mysql-bin.000001
Position: 603
Binlog_Do_DB: videoCommunity
Binlog_Ignore_DB:
1 row in set (0.00 sec)
如,mysql-bin.000001是日誌記錄檔案,603是指標位置。
從伺服器(slave)上診斷:
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: master1
Master_User: root
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 603
Relay_Log_File: master2-relay-bin.000053
Relay_Log_Pos: 740
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: videoCommunity
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: 603
Relay_Log_Space: 740
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
1 row in set (0.00 sec)
確認以上資訊和主伺服器是否一致。