MySQL作為一款強大的數據庫管理系統,數據庫復制是其中一個非常重要的功能。它允許在不影響生產系統的情況下備份和還原數據,同時也能用于橫向擴展或做讀寫分離。
MySQL的數據復制是通過主從架構實現的。在這種架構中,有一個主數據庫和一個或多個從數據庫。主數據庫擁有所有的數據,而從數據庫通過復制主數據庫的數據來與其同步。在Master-Slave模式下,主數據庫可以寫入數據,而從數據庫只能讀取數據。在Master-Master模式下,主數據庫之間可以相互寫入數據。
要復制數據庫,需要設置以下步驟:
1. 確保MySQL服務器上已經啟用了二進制日志功能(binlog)。
# 修改 my.cnf 文件 vi /etc/mysql/my.cnf # 在 [mysqld] 段末增加一行 log-bin=mysql-bin
2. 配置主數據庫
# 創建一個用于復制的用戶(例如replica) CREATE USER 'replica'@'%' IDENTIFIED BY 'password'; # 授權復制用戶訪問主數據庫 GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%'; # 查看主數據庫狀態 SHOW MASTER STATUS;
3. 配置從數據庫
# 指定要復制的主數據庫 CHANGE MASTER TO MASTER_HOST='master_host', MASTER_USER='replica', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS= 107; # 啟動從數據庫復制進程 START SLAVE;
4. 驗證
最后需要檢查從數據庫和主數據庫是否同步。在從數據庫上輸入以下命令:
SHOW SLAVE STATUS \G
如果Slave_IO_Running和Slave_SQL_Running兩個字段均為"YES",則說明已經成功實現了數據庫復制。