在服務(wù)器管理與數(shù)據(jù)庫維護(hù)場景中,通過命令行方式執(zhí)行MySQL數(shù)據(jù)庫的導(dǎo)入與導(dǎo)出操作,因其高效性、跨平臺兼容性及無需圖形界面的優(yōu)勢,成為開發(fā)者與運(yùn)維人員的重要技能。無論是Windows本地環(huán)境、Linux服務(wù)器,還是VPS彈性云主機(jī),均可通過統(tǒng)一的命令邏輯完成數(shù)據(jù)備份與遷移,本文將詳細(xì)解析其操作步驟及核心注意事項(xiàng)。
遠(yuǎn)程登錄至目標(biāo)服務(wù)器后,Windows系統(tǒng)可通過“運(yùn)行”輸入cmd打開命令行終端,Linux系統(tǒng)則直接啟動終端(如bash)。需確保mysqldump與mysql命令可在環(huán)境中直接調(diào)用。若系統(tǒng)未將MySQL的bin目錄配置至環(huán)境變量,需手動切換至MySQL安裝目錄下的bin文件夾執(zhí)行命令,例如Windows下進(jìn)入`C:\MySQL\bin`,Linux下進(jìn)入`/usr/local/mysql/bin`或`/usr/bin`(根據(jù)實(shí)際安裝路徑調(diào)整)。
通過mysqldump工具可完整導(dǎo)出指定數(shù)據(jù)庫的所有數(shù)據(jù)及結(jié)構(gòu),命令格式為:
`mysqldump -u用戶名 -p密碼 數(shù)據(jù)庫名 > 備份文件路徑.sql`
示例:`mysqldump -uroot -p123456 test > D:\test_backup.sql`
若需指定字符集避免編碼問題,可添加`--default-character-set=utf8`參數(shù),如:
`mysqldump -uroot -p123456 --default-character-set=utf8 test > D:\test_backup.sql`
僅導(dǎo)出指定表的數(shù)據(jù)與結(jié)構(gòu),需在命令中附加表名:
`mysqldump -u用戶名 -p密碼 數(shù)據(jù)庫名 表名 > 備份文件路徑.sql`
示例:`mysqldump -uroot -p123456 test users > D:\users_table.sql`
若僅需數(shù)據(jù)庫表結(jié)構(gòu)而不包含數(shù)據(jù),可使用`-d`參數(shù),并結(jié)合`--add-drop-table`在每個(gè)CREATE語句前添加DROP TABLE語句,便于后續(xù)重建:
`mysqldump -u用戶名 -p密碼 -d --add-drop-table 數(shù)據(jù)庫名 > 備份文件路徑.sql`
示例:`mysqldump -uroot -p123456 -d --add-drop-table test > D:\test_structure.sql`
通過mysql命令結(jié)合輸入重定向符號“<”,可直接執(zhí)行備份文件中的SQL語句完成數(shù)據(jù)恢復(fù):
`mysql -u用戶名 -p密碼 數(shù)據(jù)庫名 < 備份文件路徑.sql`
示例:`mysql -uroot -p123456 --default-character-set=utf8 wzx < D:\wzx_backup.sql`
若需在MySQL交互終端中執(zhí)行導(dǎo)入,可按以下步驟操作:
1. 登錄MySQL:`mysql -u用戶名 -p`(輸入密碼后進(jìn)入交互界面)
2. 選擇目標(biāo)數(shù)據(jù)庫:`mysql> use 數(shù)據(jù)庫名;`
3. 設(shè)置字符集:`mysql> set names utf8;`
4. 執(zhí)行備份文件:`mysql> source 備份文件路徑;`(注意Linux下路徑需使用正斜杠,如`/home/backup.sql`)
- 路徑格式差異:Windows系統(tǒng)路徑使用反斜杠“\”,需轉(zhuǎn)義或使用雙斜杠“\\”,或直接使用正斜杠“/”;Linux系統(tǒng)統(tǒng)一使用正斜杠“/”。
- 環(huán)境變量配置:若mysqldump或mysql命令報(bào)錯(cuò)“command not found”,需確認(rèn)是否已將MySQL的bin目錄添加至系統(tǒng)PATH環(huán)境變量,或通過絕對路徑執(zhí)行。
- 密碼安全:示例中密碼為明文,實(shí)際生產(chǎn)環(huán)境建議通過配置文件或交互式輸入密碼,避免泄露。