為什么要復制數據庫?
簡單來說有以下幾個用處:
1. 讀寫分離
通過MySQL復制可以實現讀寫分離,將讀操作分布到多個不同的服務器上,減輕服務器的壓力。
2. 備份
從庫可以作為數據的異地實時備份。
3. 故障切換
當主庫遇到故障,系統可以切換到從庫,實現故障切換。
4. 升級測試
從庫可作為測試服務器的數據庫。
復制數據的步驟:
在主庫上把數據更改記錄到二進制日志(Binary Log)中。
備庫將主庫上的日志復制到自己的中繼日志(Relay Log)中。
備庫讀取中繼日志中的事件,將其在備庫上重新執行一遍。
具體操作步驟如下:
主備兩台服務器安裝相同版本的數據庫,數據庫的初始數據保持一致。
(主庫)配置同步賬號創建數據庫復制用戶:mysql>CREATE USER 'repl'@'172.16.127.83' IDENTIFIED BY '123456';
授權:mysql>grant replication slave on *.* to 'repl'@'172.16.127.83' ;
3.(主庫)修改/etc/my.cnf文件,注意確保:server-id 唯一
server-id=1
log-bin=mysql-bin
4.(主庫)重啟master端
1. service mysqld restart
5.(主庫)查詢主庫上當前的二進制日志名和偏移量值,記錄下file跟position的值,待會從庫要用
1. mysql>show master status \G
6.(從庫)修改/etc/my.cnf文件,注意確保:server-id 唯一
server-id=2
7.(從庫)重啟slave端
1. service mysqld restart
8.(從庫)對從數據庫服務器做相應設置,指定復制使用的用戶,主數據庫服務器的IP、端口以及開始執行復制的日志文件和位置等
1. mysql>CHANGE MASTER TO MASTER_HOST='172.16.127.49',MASTER_USER='repl',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000013',MASTER_LOG_POS=156;
9. (從庫)啟動slave線程
1. mysql>start slave;
10. 主庫跟從庫分別檢查狀態
1. 檢查master的:mysql>show processlist\G 結果:看到上面的Command: Binlog Dump說明配置成功!
2.檢查slave的:mysql>show slave status \G 結果:提示:Slave_IO_Running和Slave_SQL_Running兩個值為YES基本上成功了
————————————————
版權聲明:本文為CSDN博主「六十度灰」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_31304599/article/details/113203840