爲了數據安全,一般都會將數據庫中的數據進行備份。MySQL自帶的主從備份,使用起來非常方便,而且功能強大,能夠提供近似同步的性能。
配置主從備份時,只需要讓slave知道master的地址和端口,以及一個有備份REPLICATION SLAVE權限的賬號就行了,而master則不需要知道slave相關的信息。
Master: 192.168.1.123:3306
首先配置master,如果是linux,那麼mysql的配置文件一般是 /etc/mysql/my.cnf,如果是windows,就是安裝目錄下的 my.ini
在配置文件中添加如下代碼(某些情況下配置文件中可能存在這些內容,只需要 去掉註釋就可以了):
server-id = 1
log-bin = /var/log/mysql/mysql-bin.log
binlog_do_db = xxxxx #需要備份的數據庫
slave中的配置如下:
server-id = 2 #只要比1大就可以了,1代表master
master-host = 192.168.1.123
master-port = 3306
master-user = iuser
master-password = useri
master-connect-retry = 60 #如果連接失敗,則60秒試一次
replicate-do-db = xxxx #需要備份的數據庫, 結構必須和master中的一樣
注意:
需要在master中,grant REPLICATION SLAVE 權限給 iuser
master> grant REPLICATION SLAVE on *.* to iuser@'%' identified by 'useri';
iuser 替換爲相應的用戶名,useri則是對應的密碼
配置完成後,首先重啓master,然後重啓slave,並在slave中執行
slave> start slave;
在master中,可以通過 show master status 查看狀態,slave中則通過 show slave status查看狀態
測試:
在master的表中插入一條後,很快就可以在slave對應的表中看到相同的數據,如果沒有同步,則可以查看error log找具體原因,
windows中的error log在安裝目錄的data目錄中, 一般是 *.err 文件;
linux中的error log一般則在 /var/log/mysql/error.log