用SQL語句解決mysql導(dǎo)入大數(shù)據(jù)文件的問題
更新時(shí)間:2010年08月08日 13:42:28 作者:
今天的這篇文章用來討論如何解決導(dǎo)入mysql大數(shù)據(jù)文件的問題,其實(shí)說的簡單了就是一條SQL語句,而如果你是一名SQL高手,那完全可以略過此文。
對(duì)于經(jīng)常使用MYSQL的人來說,phpmyadmin是一個(gè)必備的工具。這個(gè)工具非常強(qiáng)大,幾乎可以完成所有的數(shù)據(jù)庫操作,但是它也有一個(gè)弱點(diǎn),對(duì)于往遠(yuǎn)程服務(wù)器上導(dǎo)入較大的數(shù)據(jù)文件的時(shí)候會(huì)速度奇慢,甚至出現(xiàn)長期沒有響應(yīng)的情況。
為什么會(huì)出現(xiàn)這樣的情況呢?當(dāng)我們選擇一個(gè)sql數(shù)據(jù)文件并提交的時(shí)候,服務(wù)器首先要先把文件上傳到服務(wù)器,然后才會(huì)執(zhí)行導(dǎo)入代碼把數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫。我們知道phpmyadmin是通過web方式上傳的數(shù)據(jù)文件,而web方式上傳是很不穩(wěn)定的,尤其是網(wǎng)速慢的時(shí)候,這就是為什么我們會(huì)有那么多次在電腦前面苦苦等待而最終卻沒有結(jié)果的原因。
通過上面的分析,我們知道這個(gè)問題是出在web上傳而非導(dǎo)入程序,所以如果能避免通過web上傳這個(gè)問題就好辦了。我們可能會(huì)想到那功能強(qiáng)大的ftp上傳工具,可是phpmyadmin無法選擇遠(yuǎn)程路服務(wù)器上的文件,這是很郁悶的。
這里我們要放棄phpmysqladmin,通過mysql語句來導(dǎo)入數(shù)據(jù)庫。很多人會(huì)納悶怎么來執(zhí)行SQL語句,這是一個(gè)關(guān)鍵的問題,這需要你的空間支持SSH(Secure Shell Protocol),并且你還得會(huì)一些linux命令。
首先通過SSH登錄到服務(wù)器(我用putty登錄工具),通過一些簡單的linux命令找到我們的sql文件,然后運(yùn)行下面的代碼:
mysql db_name < data_file.sql
執(zhí)行完命令之后如果沒有任何提示,則說明我們的數(shù)據(jù)已經(jīng)導(dǎo)入成功了(注意文件格式是date_file.sql, sql.gz在中文下會(huì)出錯(cuò)) 。
———————–2008.12.9 update———————-
有些時(shí)候你可能會(huì)遇到錯(cuò)誤信息,說你的權(quán)限不夠,那我們就需要加一些參數(shù)了。
mysql -hlocalhost -uusername -p db_name < data_file.sql
這樣回車之后,就會(huì)有輸入密碼的提示,然后輸入你的數(shù)據(jù)庫密碼就可以導(dǎo)入了。
參數(shù)-h是指定導(dǎo)入的服務(wù)器,-u是數(shù)據(jù)庫的用戶名,-p是登錄數(shù)據(jù)庫的密碼,這三個(gè)參數(shù)后面不用加空格。
———————–2008.12.9 update———————-
這是一個(gè)很好的辦法,但是也不是所有的人都可以用這個(gè)方法的,因?yàn)榍疤崾悄愕目臻g必須支持SSH登錄,而支持SSH登錄的空間還是比較少的,這真是挺讓人遺憾的。
還有一個(gè)辦法就是把phpmyadmin里面的import那個(gè)功能模塊提取出來,稍微改動(dòng)一下也可以達(dá)到相同的效果。當(dāng)然如果你是一個(gè)PHP高手,也可以自己寫一個(gè)導(dǎo)入的程序,可以直接選擇一個(gè)服務(wù)器的路徑,期待ing。。。
為什么會(huì)出現(xiàn)這樣的情況呢?當(dāng)我們選擇一個(gè)sql數(shù)據(jù)文件并提交的時(shí)候,服務(wù)器首先要先把文件上傳到服務(wù)器,然后才會(huì)執(zhí)行導(dǎo)入代碼把數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫。我們知道phpmyadmin是通過web方式上傳的數(shù)據(jù)文件,而web方式上傳是很不穩(wěn)定的,尤其是網(wǎng)速慢的時(shí)候,這就是為什么我們會(huì)有那么多次在電腦前面苦苦等待而最終卻沒有結(jié)果的原因。
通過上面的分析,我們知道這個(gè)問題是出在web上傳而非導(dǎo)入程序,所以如果能避免通過web上傳這個(gè)問題就好辦了。我們可能會(huì)想到那功能強(qiáng)大的ftp上傳工具,可是phpmyadmin無法選擇遠(yuǎn)程路服務(wù)器上的文件,這是很郁悶的。
這里我們要放棄phpmysqladmin,通過mysql語句來導(dǎo)入數(shù)據(jù)庫。很多人會(huì)納悶怎么來執(zhí)行SQL語句,這是一個(gè)關(guān)鍵的問題,這需要你的空間支持SSH(Secure Shell Protocol),并且你還得會(huì)一些linux命令。
首先通過SSH登錄到服務(wù)器(我用putty登錄工具),通過一些簡單的linux命令找到我們的sql文件,然后運(yùn)行下面的代碼:
mysql db_name < data_file.sql
執(zhí)行完命令之后如果沒有任何提示,則說明我們的數(shù)據(jù)已經(jīng)導(dǎo)入成功了(注意文件格式是date_file.sql, sql.gz在中文下會(huì)出錯(cuò)) 。
———————–2008.12.9 update———————-
有些時(shí)候你可能會(huì)遇到錯(cuò)誤信息,說你的權(quán)限不夠,那我們就需要加一些參數(shù)了。
mysql -hlocalhost -uusername -p db_name < data_file.sql
這樣回車之后,就會(huì)有輸入密碼的提示,然后輸入你的數(shù)據(jù)庫密碼就可以導(dǎo)入了。
參數(shù)-h是指定導(dǎo)入的服務(wù)器,-u是數(shù)據(jù)庫的用戶名,-p是登錄數(shù)據(jù)庫的密碼,這三個(gè)參數(shù)后面不用加空格。
———————–2008.12.9 update———————-
這是一個(gè)很好的辦法,但是也不是所有的人都可以用這個(gè)方法的,因?yàn)榍疤崾悄愕目臻g必須支持SSH登錄,而支持SSH登錄的空間還是比較少的,這真是挺讓人遺憾的。
還有一個(gè)辦法就是把phpmyadmin里面的import那個(gè)功能模塊提取出來,稍微改動(dòng)一下也可以達(dá)到相同的效果。當(dāng)然如果你是一個(gè)PHP高手,也可以自己寫一個(gè)導(dǎo)入的程序,可以直接選擇一個(gè)服務(wù)器的路徑,期待ing。。。
您可能感興趣的文章:
- Python3實(shí)現(xiàn)將本地JSON大數(shù)據(jù)文件寫入MySQL數(shù)據(jù)庫的方法
- MySQL數(shù)據(jù)文件存儲(chǔ)位置的查看方法
- CentOS6.7 mysql5.6.33修改數(shù)據(jù)文件位置的方法
- mysql 通過拷貝數(shù)據(jù)文件的方式進(jìn)行數(shù)據(jù)庫遷移實(shí)例
- MySQL如何導(dǎo)入csv格式數(shù)據(jù)文件解決方案
- 一次非法關(guān)機(jī)導(dǎo)致mysql數(shù)據(jù)表損壞的實(shí)例解決
- MYSQL數(shù)據(jù)表損壞的原因分析和修復(fù)方法小結(jié)(推薦)
- 解決MySQL數(shù)據(jù)庫意外崩潰導(dǎo)致表數(shù)據(jù)文件損壞無法啟動(dòng)的問題
相關(guān)文章
Docker啟動(dòng)mysql配置實(shí)現(xiàn)過程
這篇文章主要介紹了Docker啟動(dòng)mysql配置實(shí)現(xiàn)過程,文中附含詳細(xì)的圖文示例,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家早日升職加薪2021-09-09mysql索引過長Specialed key was too long的解決方法
在創(chuàng)建要給表的時(shí)候遇到一個(gè)有意思的問題,提示Specified key was too long; max key length is 767 bytes,本文就來介紹一下解決方法,如果你也遇到此類問題,可以參考一下2021-11-11MySql中的IFNULL、NULLIF和ISNULL用法詳解
本文主要介紹了MySql中的IFNULL、NULLIF和ISNULL用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03VMware中Linux共享mysql數(shù)據(jù)庫的方法
VMware中Linux共享mysql數(shù)據(jù)庫的方法,需要的朋友可以參考下。2010-11-11