以下是CentOS下MySQL數據遷移的常見方法及步驟:
適用場景:跨服務器遷移、需備份數據
備份源數據庫
mysqldump -u [用戶名] -p[密碼] [數據庫名] > backup.sql
(可選:--all-databases
備份所有庫,或--single-transaction
保證一致性)
傳輸備份文件
scp backup.sql [目標服務器用戶]@[目標IP]:/目標路徑
恢復數據到目標服務器
mysql -u [用戶名] -p[密碼] [目標數據庫名] < backup.sql
(若為壓縮文件,需先解壓:gunzip backup.sql.gz
)
驗證數據
登錄目標數據庫,檢查表結構和數據是否完整。
適用場景:同服務器不同路徑遷移、需快速同步
停止MySQL服務
systemctl stop mysqld
復制數據目錄
rsync -av /var/lib/mysql/ [目標路徑]/
(需確保目標目錄權限正確:chown -R mysql:mysql [目標路徑]
)
修改配置文件
編輯/etc/my.cnf
,更新datadir
指向新路徑,重啟MySQL。
驗證數據
檢查新路徑下的數據文件,登錄數據庫確認表和數據正常。
適用場景:實時數據同步、讀寫分離
主服務器配置
/etc/my.cnf
,啟用log-bin
和server-id
(唯一ID)。CREATE USER 'repl'@'從服務器IP' IDENTIFIED BY '密碼';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'從服務器IP';
SHOW MASTER STATUS
中的File
和Position
。從服務器配置
/etc/my.cnf
,設置server-id
(不同于主服務器)、relay-log
。CHANGE MASTER TO
指定主服務器信息(IP、端口、賬號、File
、Position
)。START SLAVE;
,通過SHOW SLAVE STATUS
檢查狀態(Slave_IO_Running
和Slave_SQL_Running
應為Yes
)。根據需求選擇合適方法,邏輯遷移適合跨環境,物理遷移適合高性能場景,主從復制適合實時同步需求。