php解决mysql主从同步_Mysql读写分离,主从同步实现
隨著用戶量的增多,數據庫操作往往會成為一個系統的瓶頸所在,因此我們可以通過實現數據庫的讀寫分離來提高系統的性能。
通過設置主從數據庫實現讀寫分離,主庫負責“寫”操作,從庫負責“讀”操作,根據壓力情況,從庫可以部署多個已提高“讀”的速度,借此來提高系統總體的性能。
要實現讀寫分離,就要解決主從數據庫數據同步的問題,在主數據庫寫入數據后要保證從數據庫的數據也要更新。
主服務器(master)記錄數據庫操作日志到二進制日志(Binary log),從服務器開啟i/o線程將二進制日志記錄的操作同步到relay log中繼日志(存在從服務器的緩存中),另外sql線程將relay log(中繼日志)記錄的操作在從服務器執行。
記住這張圖,接下來基于這個圖實際設置主從數據庫。
首先要有兩個數據庫服務器master(主庫)、slave(從庫)(也可以用一個服務器安裝兩套數據庫環境運行在不同端口,slave也可以舉一反三設置多個)。以下操作假設你的兩臺服務器上都已經安裝好了mysql服務。
1.打開mysql數據庫配置文件
vim /etc/my.cnf
2.在主服務器master上配置開啟Binary log,主要是在[mysqld]下面添加:
#日志文件名
log-bin = mysql-bin
#主數據庫端ID號
server-id = 1
3.重啟mysql,并創建用于同步的賬戶
service mysqld restart
# 創建slave從庫帳號slave_account,密碼123456
mysql>grant replication slave on *.* to 'slave_account'@'從庫ip' identified by '123456';
# 更新數據庫權限
mysql>flush privileges;
4.檢查配置效果,進入主數據庫并執行
mysql> SHOW MASTER STATUS;
注:執行完這個步驟后不要再操作主數據庫了,防止主數據庫狀態值變化
5.配置從服務器的 my.cnf
在[mysqld]節點下面添加:
server-id = 2
這里面的server-id 一定要和主庫的不同。
6.重啟從數據庫
service mysql restart
7.執行同步命令(進入從數據庫執行)
mysql>change master to master_host='主庫ip',master_port=端口號,master_user='slave_account',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=9049;
8.開啟同步
mysql> start slave;
檢查從數據庫狀態
mysql > show slave status \G
Slave_IO_Running及Slave_SQL_Running進程必須正常運行,即YES狀態,否則說明同步失敗。
接下來在主庫的操作,在從庫都會執行了。我們可以主庫負責寫,從庫負責讀,達到讀寫分離的效果。
總結
以上是生活随笔為你收集整理的php解决mysql主从同步_Mysql读写分离,主从同步实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java jar 配置文件路径_java
- 下一篇: 可以装linux的路由器,[转载]lin