對於經常使用MYSQL的人來說,phpmyadmin是一個必備的工具。這個工具非常強大,幾乎可以完成所有的資料庫操作,但是它也有一個弱點,對於往遠程伺服器上匯入較大的資料檔案的時候會速度奇慢,甚至出現長期沒有響應的情況。
為什麼會出現這樣的情況呢?當我們選擇一個sql資料檔案並提交的時候,伺服器首先要先把檔案上傳到伺服器,然後才會執行匯入代碼把資料匯入到資料庫。我們知道phpmyadmin是通過web方式上傳的資料檔案,而web方式上傳是很不穩定的,尤其是網速慢的時候,這就是為什麼我們會有那麼多次在電腦前面苦苦等待而最終卻沒有結果的原因。
通過上面的分析,我們知道這個問題是出在web上傳而非匯入程式,所以如果能避免通過web上傳這個問題就好辦了。我們可能會想到那功能強大的ftp上傳工具,可是phpmyadmin無法選擇遠程路伺服器上的檔案,這是很鬱悶的。
這裡我們要放棄phpmysqladmin,通過mysql語句來匯入資料庫。很多人會納悶怎麼來執行SQL語句,這是一個關鍵的問題,這需要你的空間支援SSH(Secure Shell Protocol),並且你還得會一些linux命令。
首先通過SSH登入到伺服器(我用putty登入工具),通過一些簡單的linux命令找到我們的sql檔案,然後運行下面的代碼:
mysql db_name < data_file.sql
執行完命令之後如果沒有任何提示,則說明我們的資料已經匯入成功了(注意檔案格式是date_file.sql, sql.gz在中文下會出錯) 。
———————–2008.12.9 update———————-
有些時候你可能會遇到錯誤資訊,說你的許可權不夠,那我們就需要加一些參數了。
mysql -hlocalhost -uusername -p db_name < data_file.sql
這樣斷行符號之後,就會有輸入密碼的提示,然後輸入你的資料庫密碼就可以匯入了。
參數-h是指定匯入的伺服器,-u是資料庫的使用者名稱,-p是登入資料庫的密碼,這三個參數後面不用加空格。
———————–2008.12.9 update———————-
這是一個很好的辦法,但是也不是所有的人都可以用這個方法的,因為前提是你的空間必須支援SSH登入,而支援SSH登入的空間還是比較少的,這真是挺讓人遺憾的。
還有一個辦法就是把phpmyadmin裡面的import那個功能模組提取出來,稍微改動一下也可以達到相同的效果。當然如果你是一個PHP高手,也可以自己寫一個匯入的程式,可以直接選擇一個伺服器的路徑,期待ing。。。