MySQL主從復制可以讓數據在多個服務器之間同步,從而達到負載均衡和故障容錯的效果。當從庫遭遇嚴重損壞或其他原因需要重新搭建時,可以按照以下步驟進行。
Step 1: 關閉從庫并備份數據
# 停止MySQL服務 systemctl stop mysql # 備份從庫數據 mysqldump --all-databases --master-data >/var/tmp/backup.sql
Step 2: 清空從庫
# 刪除從庫數據目錄 rm -rf /var/lib/mysql/* # 初始化從庫 mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql/
Step 3: 配置從庫同步參數
# 修改配置文件 vi /etc/my.cnf # 添加如下內容 [mysqld] log-bin=mysql-bin server-id=2 relay-log=/var/lib/mysql/mysql-relay-bin relay-log-index=/var/lib/mysql/mysql-relay-bin.index log-slave-updates # 重啟MySQL服務 systemctl start mysql
Step 4: 從主庫同步數據
# 連接主庫創建從庫賬號并授權 mysql>GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.%' IDENTIFIED BY '123456'; mysql>FLUSH PRIVILEGES; # 查看主庫狀態并記錄File和Position mysql>SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000003 | 107 | | | +------------------+----------+--------------+------------------+ # 在從庫上執行主庫狀態信息 mysql>CHANGE MASTER TO ->MASTER_HOST='192.168.1.100', ->MASTER_PORT=3306, ->MASTER_USER='slave', ->MASTER_PASSWORD='123456', ->MASTER_LOG_FILE='mysql-bin.000003', ->MASTER_LOG_POS=107; # 開啟從庫復制 mysql>START SLAVE;
Step 5: 驗證從庫是否同步成功
# 查看從庫狀態信息 mysql>SHOW SLAVE STATUS\G # 查看其中的Slave_IO_Running和Slave_SQL_Running是否都為Yes,并且Last_IO_Error和Last_SQL_Error都為空
通過以上步驟可以將一個空的從庫重新搭建成為和主庫同步數據的從庫。
上一篇mysql唯一約束怎么寫
下一篇dockertop命令