mysql開啟主從復制與laravel讀寫分離配置

公司有兩臺服務器,其中一臺用于app后端服務和數據庫數據存儲和備份,另外一臺基本沒什么用
主服務器壓力一直有點過大,頻繁的自動備份導致磁盤空間也有點不夠用

  • 主服務器狀態(tài)


    image.png

    image.png
  • 從服務器狀態(tài)


    image.png

    image.png

主從復制解決的問題:
1.數據備份不被丟失
2.讀寫分離
3.數據庫負載均衡
4.高可用


image.png
image.png

所以想通過mysql主從復制減輕主服務器的壓力,從而提高并發(fā)能力。
主從復制后,將查詢工作/備份工作交給從庫完成,主庫進行寫的操作

實現步驟

設置主服務器

1.修改mysql的配置文件(my.conf),使其支持二進制日志功能。
我查看自己的mysql配置后發(fā)現這幾項配置都已經寫好了,無需修改

log-bin=mysql-bin  //將mysql二進制日志取名為mysql-bin
binlog_format=mixed //二進制日志的格式,有三種:statement/row/mixed,具體分別不多做解釋,這里使用mixed
server-id=1 //為服務器設置一個獨一無二的id便于區(qū)分,這里使用ip地址的最后一位充當server-id
binlog-do-db = xxx //指定復制的數據庫,這條在配置中沒有,需要自己加

2.在主服務器上開放權限
在mysql命令行輸入:

GRANT replication slave ON *.* TO 'slave_user_name'@'ip_table' IDENTIFIED BY 'password'; 

replication slave 復制權限
. 可以操作哪個數據庫
slave 用戶名
'%' 可以操作的用戶IP,可以指定某個ip,
BY 訪問密碼
3.配置完成后重啟mysql
4.導出想要主從復制的數據庫,導出的同時執(zhí)行以下命令,記錄兩個關鍵參數,file和position,配置從庫的時候需要用到。

image.png

5.將導出的數據庫導入到從庫中(首次實現主從同步要將主庫上需要同步的數據庫整的導入到從庫中 )
6.設置從服務器

mysql> change master to
      MASTER_HOST='47.xxx.xxx.xx', //對應主服務器的訪問IP
      MASTER_USER='slave',//對應主服務器上開通的用戶名
      MASTER_PASSWORD='shenchi2020',//對應主服務器上開通用戶的密碼
      MASTER_LOG_FILE='mysql-bin.000026',//對應主服務器上file的日志文件名
      MASTER_LOG_POS=115969; ,//對應主服務器上開始復制的position位置

Query OK, 0 rows affected, 2 warnings (0.05 sec)

7.在從庫中開始執(zhí)行主從復制

stop slave
start slave

8.在 Slave 的 MySQL 終端執(zhí)行查看主從同步狀態(tài):

show slave status \G;
image.png

Slave_IO_Running:Yes
Slave_SQL_Running:Yes
則表示同步成功,這時就可以對從庫進行備份操作了

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容