用SQL語句解決mysql導入大數(shù)據(jù)文件的問題
更新時間:2010年08月08日 13:42:28 作者:
今天的這篇文章用來討論如何解決導入mysql大數(shù)據(jù)文件的問題,其實說的簡單了就是一條SQL語句,而如果你是一名SQL高手,那完全可以略過此文。
對于經(jīng)常使用MYSQL的人來說,phpmyadmin是一個必備的工具。這個工具非常強大,幾乎可以完成所有的數(shù)據(jù)庫操作,但是它也有一個弱點,對于往遠程服務器上導入較大的數(shù)據(jù)文件的時候會速度奇慢,甚至出現(xiàn)長期沒有響應的情況。
為什么會出現(xiàn)這樣的情況呢?當我們選擇一個sql數(shù)據(jù)文件并提交的時候,服務器首先要先把文件上傳到服務器,然后才會執(zhí)行導入代碼把數(shù)據(jù)導入到數(shù)據(jù)庫。我們知道phpmyadmin是通過web方式上傳的數(shù)據(jù)文件,而web方式上傳是很不穩(wěn)定的,尤其是網(wǎng)速慢的時候,這就是為什么我們會有那么多次在電腦前面苦苦等待而最終卻沒有結果的原因。
通過上面的分析,我們知道這個問題是出在web上傳而非導入程序,所以如果能避免通過web上傳這個問題就好辦了。我們可能會想到那功能強大的ftp上傳工具,可是phpmyadmin無法選擇遠程路服務器上的文件,這是很郁悶的。
這里我們要放棄phpmysqladmin,通過mysql語句來導入數(shù)據(jù)庫。很多人會納悶怎么來執(zhí)行SQL語句,這是一個關鍵的問題,這需要你的空間支持SSH(Secure Shell Protocol),并且你還得會一些linux命令。
首先通過SSH登錄到服務器(我用putty登錄工具),通過一些簡單的linux命令找到我們的sql文件,然后運行下面的代碼:
mysql db_name < data_file.sql
執(zhí)行完命令之后如果沒有任何提示,則說明我們的數(shù)據(jù)已經(jīng)導入成功了(注意文件格式是date_file.sql, sql.gz在中文下會出錯) 。
———————–2008.12.9 update———————-
有些時候你可能會遇到錯誤信息,說你的權限不夠,那我們就需要加一些參數(shù)了。
mysql -hlocalhost -uusername -p db_name < data_file.sql
這樣回車之后,就會有輸入密碼的提示,然后輸入你的數(shù)據(jù)庫密碼就可以導入了。
參數(shù)-h是指定導入的服務器,-u是數(shù)據(jù)庫的用戶名,-p是登錄數(shù)據(jù)庫的密碼,這三個參數(shù)后面不用加空格。
———————–2008.12.9 update———————-
這是一個很好的辦法,但是也不是所有的人都可以用這個方法的,因為前提是你的空間必須支持SSH登錄,而支持SSH登錄的空間還是比較少的,這真是挺讓人遺憾的。
還有一個辦法就是把phpmyadmin里面的import那個功能模塊提取出來,稍微改動一下也可以達到相同的效果。當然如果你是一個PHP高手,也可以自己寫一個導入的程序,可以直接選擇一個服務器的路徑,期待ing。。。
為什么會出現(xiàn)這樣的情況呢?當我們選擇一個sql數(shù)據(jù)文件并提交的時候,服務器首先要先把文件上傳到服務器,然后才會執(zhí)行導入代碼把數(shù)據(jù)導入到數(shù)據(jù)庫。我們知道phpmyadmin是通過web方式上傳的數(shù)據(jù)文件,而web方式上傳是很不穩(wěn)定的,尤其是網(wǎng)速慢的時候,這就是為什么我們會有那么多次在電腦前面苦苦等待而最終卻沒有結果的原因。
通過上面的分析,我們知道這個問題是出在web上傳而非導入程序,所以如果能避免通過web上傳這個問題就好辦了。我們可能會想到那功能強大的ftp上傳工具,可是phpmyadmin無法選擇遠程路服務器上的文件,這是很郁悶的。
這里我們要放棄phpmysqladmin,通過mysql語句來導入數(shù)據(jù)庫。很多人會納悶怎么來執(zhí)行SQL語句,這是一個關鍵的問題,這需要你的空間支持SSH(Secure Shell Protocol),并且你還得會一些linux命令。
首先通過SSH登錄到服務器(我用putty登錄工具),通過一些簡單的linux命令找到我們的sql文件,然后運行下面的代碼:
mysql db_name < data_file.sql
執(zhí)行完命令之后如果沒有任何提示,則說明我們的數(shù)據(jù)已經(jīng)導入成功了(注意文件格式是date_file.sql, sql.gz在中文下會出錯) 。
———————–2008.12.9 update———————-
有些時候你可能會遇到錯誤信息,說你的權限不夠,那我們就需要加一些參數(shù)了。
mysql -hlocalhost -uusername -p db_name < data_file.sql
這樣回車之后,就會有輸入密碼的提示,然后輸入你的數(shù)據(jù)庫密碼就可以導入了。
參數(shù)-h是指定導入的服務器,-u是數(shù)據(jù)庫的用戶名,-p是登錄數(shù)據(jù)庫的密碼,這三個參數(shù)后面不用加空格。
———————–2008.12.9 update———————-
這是一個很好的辦法,但是也不是所有的人都可以用這個方法的,因為前提是你的空間必須支持SSH登錄,而支持SSH登錄的空間還是比較少的,這真是挺讓人遺憾的。
還有一個辦法就是把phpmyadmin里面的import那個功能模塊提取出來,稍微改動一下也可以達到相同的效果。當然如果你是一個PHP高手,也可以自己寫一個導入的程序,可以直接選擇一個服務器的路徑,期待ing。。。
您可能感興趣的文章:
- Python3實現(xiàn)將本地JSON大數(shù)據(jù)文件寫入MySQL數(shù)據(jù)庫的方法
- MySQL數(shù)據(jù)文件存儲位置的查看方法
- CentOS6.7 mysql5.6.33修改數(shù)據(jù)文件位置的方法
- mysql 通過拷貝數(shù)據(jù)文件的方式進行數(shù)據(jù)庫遷移實例
- MySQL如何導入csv格式數(shù)據(jù)文件解決方案
- 一次非法關機導致mysql數(shù)據(jù)表損壞的實例解決
- MYSQL數(shù)據(jù)表損壞的原因分析和修復方法小結(推薦)
- 解決MySQL數(shù)據(jù)庫意外崩潰導致表數(shù)據(jù)文件損壞無法啟動的問題
相關文章
MySql報錯Table mysql.plugin doesn’t exist的解決方法
一般產(chǎn)生原因是手工更改my.ini的數(shù)據(jù)庫文件存放地址導致的,大家可以參考下下面的方法2013-02-02
Mysql插入數(shù)據(jù)方式(insert into 、replace into解析)
這篇文章主要介紹了Mysql插入數(shù)據(jù)方式(insert into 、replace into解析),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01

