公司有兩臺服務器,其中一臺用于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
則表示同步成功,這時就可以對從庫進行備份操作了



