MySQL主從配置就是一臺主服務器和一臺備份從服務器了,從服務器會實時備份主服務器上更新修改或刪除的數據了,下面我們一起來看配置方法.
mysql replication 主要通過復制二進制日志,在slave上執行master一樣的來SQL來保持master 和slave的數據一致.
好處不必多說,第一個 master-slave的結構首先能實現讀寫分離,對于緩解數據庫Server的鴨梨會起到一定好處,另外當master宕機的話,可以馬上切到slave上邊,可以提高系統的可用性.
1.mysql 的主從復制是通過 bin log來實現的,首先master要開啟二進制日志,代碼如下:
- server-id = 1
- log_bin = /var/log/mysql/mysql-bin.log
- binlog_ignore_db = mysql
2.master 上要開一個專供復制的賬號
grant file,select,replication slave on *.* to slave@'%' identified by '123456'; --我這里是有問題的,開了權限給所有的庫 所有的機器,而且還設置了弱密碼,不過做為測試機玩玩也未必不可.
3.slave 機器 設置一個 server-id
server-id = 2
4.設置復制信息
這里要先看一下當前 master 的binlog 記到哪里了,從哪個文件開始的哪一個位置,然后設置slave從這個地方開始復制,所以這個時候要保證 master 和 slave的數據是一樣的,這樣才能保證master和slave數據的一致性.
先在master端執行:show master status;代碼如下:
- mysql> show master status;
- +------------------+----------+--------------+------------------+
- | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
- +------------------+----------+--------------+------------------+
- | mysql-bin.000015 | 26560211 | | mysql |
- +------------------+----------+--------------+------------------+
- 1 row in set (0.00 sec) --Vevb.com
得到當前的二進制日志文件和當前的位置,在 slave 端執行如下代碼:
- change master to master_host='192.168.57.64',
- master_user='slave',
- master_password='123456',
- master_log_file='mysql-bin.000015',
- master_log_pos=26560211;
最后 slave端 start slave;用 show slave status\G; 查看參數 Slave_IO_Running 和 Slave_SQL_Running,如果兩個參數都是 yes,說明搞定.
新聞熱點
疑難解答