利用 Navicat 實現 MySQL 數據庫結構同步:圖文教程
開發/測試/生產環境結構不一致是常見痛點。Navicat 提供可視化「結構同步」功能,幾分鐘完成對比與同步,避免手工 ALTER 遺漏與出錯。
操作步驟
1. 建立源/目標連接
- 打開 Navicat for MySQL → 「連接」 → 新建連接。
- 分別配置源庫(參考標準)與目標庫(待同步)的主機、端口、用戶、密碼。
- 點擊「測試連接」確保雙方可達。
2. 開啟結構同步工具
3. 選擇同步對象與範圍
- 源:選擇源連接及數據庫(作為標準)。
- 目標:選擇目標連接及數據庫(將被修改)。
- 對比項:可勾選「表」、「視圖」、「存儲過程」、「函數」、「觸發器」、「事件」等,按需選擇。
4. 執行對比
- 點擊「比對」按鈕,Navicat 會分析雙方結構差異。
- 結果窗口分三區:
- 左側:源對象列表(綠=一致,紅=僅源有,藍=定義不同)。
- 右側:目標對象列表(同色碼)。
- 底部:自動生成的同步 SQL 腳本(
CREATE/ALTER/DROP)。
5. 審核與執行同步
- 逐條查看底部 SQL,確認無誤(特別關注
DROP COLUMN、CHANGE COLUMN 等破壞性操作)。
- 勾選需執行的語句 → 點擊「運行」或「保存為文件」由 DBA 審核後執行。
6. 查看執行結果
- 「信息日志」顯示每條語句執行狀態:綠色=成功,紅色=失敗(需人工干預)。
- 同步完成後,可在目標庫再次
DESC 驗證關鍵表結構是否一致。
進階技巧
- 同步前備份:目標庫先
mysqldump -d 導出結構,或開啟 Binlog 確保可回滾。
- 忽略不關心差異:如 AUTO_INCREMENT 當前值、註釋差異,可在對比選項中勾選「忽略」。
- 數據同步:若需同步數據,使用「數據同步」功能(另一標簽),支援行級對比與增量同步。
- 命令行自動化:Navicat 支援
navicat.exe /sync structure ... 參數,可接入 CI/CD 流水線。
常見坑點
- 權限不足:同步用戶需具備
ALTER、CREATE、DROP、INDEX 權限。
- 外鍵阻礙:同步涉及外鍵表時,建議先同步父表,或暫時
SET FOREIGN_KEY_CHECKS=0。
- 大表 ALTER 鎖表:同步生成的
ALTER TABLE 可能鎖表數小時,建議低峰期執行或用 pt-online-schema-change 替代。
一句話總結: Navicat 結構同步 = 「可視化對比 + 自動生成 SQL + 可控執行」,是跨環境結構一致性的利器。