最近由于遷移服務(wù)器次數(shù)比較多,,需要經(jīng)常將MySQL數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出后再導(dǎo)入,。用phpMyAdmin的話,,由于PHP以及執(zhí)行時間的限制,,經(jīng)常會出現(xiàn)不能導(dǎo)出的問題(因為數(shù)據(jù)庫比較大),。而且就算導(dǎo)出了,也很可能因為上傳限制等原因?qū)е聼o法再次導(dǎo)入,。因此,,我決定在Linux下嘗試使用命令行的形式進行導(dǎo)出。
導(dǎo)出使用mysqldump命令,導(dǎo)入則使用的是mysql命令,。下面我們分別講解一下導(dǎo)出和導(dǎo)入命令的詳細用法,。
(一)導(dǎo)出
命令:mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 > 文件名
如果用戶名需要密碼,則需要在此命令執(zhí)行后輸入一次密碼核對,;如果數(shù)據(jù)庫用戶名不需要密碼,,則不要加“-p”參數(shù),導(dǎo)入的時候相同,。注意輸入的用戶名需要擁有對應(yīng)數(shù)據(jù)庫的操作權(quán)限,,否則無法導(dǎo)出數(shù)據(jù)。由于是作系統(tǒng)維護和全部數(shù)據(jù)庫的導(dǎo)出,,一般我們使用root等超級用戶權(quán)限,。
比如要將abc這個數(shù)據(jù)庫導(dǎo)出為一個文件名為db_abc.sql的數(shù)據(jù)庫文件到當(dāng)前目錄下,則輸入下面的命令:
#mysqldump -u root -p abc > db_abc.sql
接下來輸入root用戶的密碼即可導(dǎo)出數(shù)據(jù)庫,。
(二)導(dǎo)入
命令:mysql -u 用戶名 -p 數(shù)據(jù)庫名 < 文件名
同mysqldump命令一樣的用法,,各參數(shù)的意義同mysqldump。
比如我們要將/root/backup/db_abc.sql這個文件的數(shù)據(jù)導(dǎo)入到abc數(shù)據(jù)庫中,,則使用下面的命令:
#mysql -u root -p abc < /root/backup/db_abc.sql
之后輸入root用戶的密碼即可導(dǎo)入,。值得一提的是,如果這個數(shù)據(jù)庫本身不存在,,則無法導(dǎo)入,。也就是說要想導(dǎo)入到一個數(shù)據(jù)庫,至少應(yīng)該先建立一個空的數(shù)據(jù)庫,,然后再導(dǎo)入,。
有了這兩條指令,相信再大的數(shù)據(jù)庫,,都能得心應(yīng)手的導(dǎo)出了,。再也不會出現(xiàn)phpMyAdmin的超時錯誤,以及遇到導(dǎo)出的文件過大無法在phpMyAdmin中導(dǎo)入的問題,。