說明
mysql資料庫支援主從資料庫叢集、主從Database Backup以及主主相互備份。下面主要說一下主主同步備份。所謂主主同步是指兩個或以上資料庫間時時同步資料,主要作用一個是備份,再一個就是分攤使用者並行訪問量。
配置
假設有兩個資料庫伺服器192.168.0.1和192.168.0.2,
後面用1表示168.0.1,
2表示168.0.2
首先配置1
用root進入mysql添加一個授權2可以訪問的使用者
| 代碼: |
| mysql>GRANT all privileges ON *.* TO tongbu@'192.168.0.2' IDENTIFIED BY '123456'; |
退出mysql編輯mysql配置檔案
添加或修改以下內容:
| 代碼: |
[client] default-character-set=utf8 [mysqld] default-character-set=utf8 log-bin=mysql-bin server-id=1 master-host=192.168.0.2 master-user=tongbu master-password=123456 master-port=3306 master-connect-retry=30 #斷網後間隔30秒重連 binlog-do-db=mysql #要備份的庫 replicate-do-db=mysql skip-name-resolve #快速登入跳過使用者解析 back_log = 500 max_connect_errors = 100 max_connections=1000 |
重啟mysql服務
| 代碼: |
| service mysqld restart |
至此1配置完畢,然後配置2,步驟同1
| 代碼: |
| mysql>GRANT all privileges ON *.* TO tongbu@'192.168.0.1' IDENTIFIED BY '123456'; |
| 代碼: |
[client] default-character-set=utf8 [mysqld] default-character-set=utf8 server-id=2 master-host=192.168.0.1 master-user=tongbu master-password=123456 master-port=3306 binlog-do-db=mysql replicate-do-db=mysql skip-name-resolve back_log = 500 max_connections = 1000 max_connect_errors = 100 slave_skip_error=1062 sync_binlog=1 #每作一次操作同步一次 log-bin=mysql-bin |
| 代碼: |
| service mysqld restart |
至此2也配置完畢
注意:2裡面的配置有些不同是因為我把1做為生產庫,2隻做備份
最後進入1的mysql查看master狀態
| 代碼: |
| mysql>show master status; |
顯示如下:
| 代碼: |
+------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000019 | 11809679 | mysql | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec) |
我們把file=mysql-bin.000019和position=11809679 記下來
然後進入2的mysql
| 代碼: |
| mysql>change master to master_log_file='mysql-bin.000019',master_log_pos=11809679 |
查看同步備份狀態
| 代碼: |
| mysql>show slave statusG |
其中的
| 代碼: |
Slave_IO_Running: Yes Slave_SQL_Running: Yes |
都是Yes則已經處於正常同步狀態了