1、介紹 MySQL資料庫設置讀寫分離,可以使對資料庫的寫操作和讀操作在不同伺服器上執行,提高併發量和響應速度。現在的網站一般大點的,都採用有資料庫主從分離、讀寫分離,既起到備份作用也可以減輕資料庫的讀寫的壓力,一直聽說過這些,但是從來沒有親自動手實踐過,今天有時間實踐一下,記錄下過程。 2、環境準 ...
1、介紹
MySQL資料庫設置讀寫分離,可以使對資料庫的寫操作和讀操作在不同伺服器上執行,提高併發量和響應速度。現在的網站一般大點的,都採用有資料庫主從分離、讀寫分離,既起到備份作用也可以減輕資料庫的讀寫的壓力,一直聽說過這些,但是從來沒有親自動手實踐過,今天有時間實踐一下,記錄下過程。
2、環境準備
我準備了兩台伺服器,一個是本機PC,一個是遠程伺服器,分別在兩台機子上裝有Mysql資料庫MySQL安裝我就不介紹了,這裡需要註意的是:MySQL安裝的版本最好一致,如果不一致,低版本向高版本讀的時候可能有問題,最好保持一致。
主庫master 伺服器:172.10.10.69 centos 7 Linux系統 , mysql版本 5.6.35
從庫slave 本機:172.10.10.240 Win7系統, mysql版本 5.6.35
3、主庫配置
在主庫中創建一個用戶root,用於從庫讀取主庫的執行日誌。
需要在mysql命令行里執行,需要先登錄命令行
1、GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.10.10.240' IDENTIFIED BY '123456';
2、flush privileges;
修改my.cnf文件:
在【mysqld】下麵添加
server-id=13 log-bin=master-bin log-bin-index=master-bin.index
重啟MySQL
進入mysql命令行,輸入show master status;查看信息
記住File和Position,因為在配置從服務時要使用。
4、配置從伺服器
修改my.cnf
server-id=2 relay-log=slave-relay-bin relay-log-index=slave-relay-bin.index
重啟資料庫。
管連主資料庫,在命令行輸入一下命令:
change master to master_host='192.10.10.69', #Master 伺服器Ip master_port=3306, master_user='root', master_password='123456', master_log_file='master-bin.000255', #Master日誌文件名 master_log_pos=1575; #Master日誌同步開始位置
註意是否執行成功,如果執行失敗就好好檢查下代碼,看看哪裡寫錯了。
如果執行正常,就啟動從庫slave,並查看下連接狀態。
//需要再mysql命令行執行 start slave; show slave status; //查看slave連接狀態
狀態信息:
Slave_IO_State: Waiting for master to send event Master_Host: 45.78.57.4 Master_User: test Master_Port: 3306 Connect_Retry: 60 Master_Log_File: master-bin.000001 Read_Master_Log_Pos: 672913 Relay_Log_File: slave-relay-bin.000044 Relay_Log_Pos: 504 Relay_Master_Log_File: master-bin.000001 Slave_IO_Running: Yes //必須為YES Slave_SQL_Running: Yes //必須為YES
如果Slave_IO_Running和Salve_SQL_Running不同時為YES,則配置錯誤,檢查上面步驟。
5、測試
在主資料庫添加一條數據,在從資料庫查看是否有數據。