程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 用SQL語句解決mysql導入大數據文件的問題

用SQL語句解決mysql導入大數據文件的問題

編輯:關於MYSQL數據庫
對於經常使用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。。。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved