筆者最近幾天幫助一位客戶搬遷MYSQL,因為客戶的MYSQL數據庫非常龐大,大概3G大小,筆者按照網上的方法實驗了很多種方法,下面來告訴大家如何正確的導入MYSQL大數據庫方法,因為有的數據庫大小超過100M,可能會有幾個G,那么肯定和小數據庫不一樣的。
- 筆者按照網上的方法采用PHPMYADMIN的方法導入,大家都知道PHPMYADMIN只能導入2M大的數據庫,如果要大於2M那么肯定要用修改幾個文件。
(1):修改PHP配置文件的大小,然后來更改設置,upload_max_filesize修改這個和post_max_size和這2個配置文件的大小,然后在導入,這個方法筆者測試了,只能修改到最大2G,不能再大,並且因為2G非常大,要上傳在導入,這個速度肯定非常慢。
(2):還有網上分享的一個方法,是先在PHPMYADMIN目錄建立一個文件夾,然后修改config.inc.php配置文件,在修改里面的$cfg['UploadDir']=這個設置你的文件名,但是筆者測試這個發現,因為新版的配置文件就沒有config.inc.php文件夾,然后如果用新版的配置文件修改,發現,導入界面是沒有變化的,筆者用2.2 2.6版本的方法測試,也不得實現,沒有出來配置文件,可能筆者的方法有誤,希望大家給予糾正。
PHPMYADMIN的方法
我們發現只能導入一些非常小的文件,對於大數據庫文件還是沒招。
BigDump類同Phpmyadmin
在網上找了又找,又發現一種方法,是用BigDump來導入,這個方法和PHPMYADMIN有點類似,不過這個工具的優點是,非常小,只有50K大小,只要把這個文件上傳到FTP上去,然后修改里面數據庫配置文件,在把你的數據庫備份上傳上去,就可以導入到數據庫,但是筆者導入,的時候點擊Start Import竟然出錯了,無法導入。
Navicat導入Mysql數據庫
第三個方法大家,也都是非常熟悉,使用Navicat導入MYSQL,筆者用這個軟件測試發現,這個軟件導入MYSQL特別是.SQL文件非常慢,甚至等了1個小時才導入了不到30M的數據庫,還頻繁報錯,應該是因為我的數據庫是從LINUX導出的吧。
Windows下CMD命令導入SQL
亮出最終大招,采用CMD命令行導入,也就是MYSQL自帶的MYSQL導入工具導入,很多朋友,因為習慣使用了WIN系統,所以非常不喜歡命令行模式,但是實際上CMD命令行的速度以及效率以及他的性能是最優質的,我們來看看步揍。
- 先在我的電腦桌面,點擊開始,輸入CMD命令,然后輸入D: 命令
- 然后應該會提示你已經進入D盤了,按照你數據庫的地址,我的數據庫是在D盤的SOFT這個文件夾目錄,我的D盤目錄應該是D:\SOFT\Mysql
- 輸入命令:“CD SOFT\Mysql\Bin”類似於這樣,大家可以先在本地編輯好,然后直接復制進你的命令,然后回車鍵執行。
然后,在導入數據庫,非常簡單,命令如下:
mysql -u root -pbenbenerpassword mysqlname< C:\X.SQL
通過以上命令執行CMD命令如果報安全警告(Warning: Using a password on the command line interface can be insecure.)就分行執行如下:
mysql -u root -p \\執行此行命令然后根據提示輸入數據庫密碼; mysqlname< C:\X.SQL \\執行本行導入數據庫文件(C:\X.SQL為你的文件目錄);
這個命令,大家不要直接打進命令行,需要改為自己的在打,我們來注釋下這幾個的意思,需要更改為你自己的數據庫。
root是你的數據庫用戶名,benbenerpassword是你的數據庫密碼mysqlname是你要導入的數據庫名稱 然后后面,就是你的數據庫文件了。
筆者親測,2G文件,沒報任何錯誤,半個小時導入到我的數據庫里面,非常爽。
自己電腦上裝的PHPNow在導入數據庫比較大(大於32M)時遇到錯誤,不能導入。 找到解決方法: php.ini配置文件中有三處地方需要改動:
upload_max_filesize memory_limit post_max_size
這三個值都工具實際情況改下,重啟服務器以后,雖然導入時仍然顯示是 最大限制:32M ) ; 但實際上已經可以導入很大的數據庫了。。。
如修改成
upload_max_filesize = 128M memory_limit = 128M post_max_size= 128M
在phpmyadmin導入里會顯示(最大限制:128 MB)
附記:
以下的文章主要介紹的是MySQL導入.sql文件的具體操作步驟,以及在其實際操作中值得我們大家注意的相關實際操作事項的具體描述,以下就是文章的詳細內容的闡述,望大家會有所收獲。
一.MySQL的命令行模式的設置:
桌面->我的電腦->屬性->環境變量->新建->
PATH=“;path\MySQL\bin;”其中path為MySQL的安裝路徑。
二.簡單的介紹一下命令行進入MySQL的方法:
C:\>MySQL -h hostname -u username -p
按ENTER鍵,等待然后輸入密碼。這里hostname為服務器的名稱,如localhost,username為MySQL的用戶名,如root。進入命令行后可以直接操作MySQL了。
2.簡單介紹一下MySQL命令:
MySQL->CREATE DATABASE dbname;//創建數據庫 MySQL->CREATE TABLE tablename;//創建表 MySQL->SHOW DATABASES;//顯示數據庫信息,有那些可用的數據庫。 MySQL->USE dbname;//選擇數據庫 MySQL->SHOW TABLES;//顯示表信息,有那些可用的表 MySQL->DESCRIBE tablename;//顯示創建的表的信息
三.從數據庫導出數據庫文件:
將數據庫mydb導出到e:\MySQL\mydb.sql文件中:打開開始->運行->輸入cmd 進入命令行模式
c:\>MySQLdump -h localhost -u root -p mydb >e:\MySQL\mydb.sql
- 然后輸入密碼,等待一會導出就成功了,可以到目標文件中檢查是否成功。
- 將數據庫mydb中的mytable導出到e:\MySQL\mytable.sql文件中:
c:\>MySQLdump -h localhost -u root -p mydb mytable>e:\MySQL\mytable.sql
- 將數據庫mydb的結構導出到e:\MySQL\mydb_stru.sql文件中:
c:\>MySQLdump -h localhost -u root -p mydb --add-drop-table >e:\MySQL\mydb_stru.sql
四.從外部文件導入數據到數據庫中:從e:\MySQL\mydb2.sql中將文件中的SQL語句MySQL導入數據庫中:
- 從命令行進入MySQL,然后用命令CREATE DATABASE mydb2;創建數據庫mydb2。
- 退出MySQL 可以輸入命令exit;或者quit;
- 在CMD中輸入下列命令:
c:\>MySQL -h localhost -u root -p mydb2 < e:\MySQL\mydb2.sql
然后輸入密碼,就OK了。五.下面談一下關於導入文件大小限制問題的解決:
默認情況下:MySQL 對導入文件大小有限制的,最大為2M,所以當文件很大時候,直接無法導入,下面就這個問題的解決列舉如下:
- 在php.ini中修改相關參數:
- 影響MySQL導入文件大小的參數有三個:
memory_limit=128M,upload_max_filesize=2M,post_max_size=8M
修改upload_max_filesize=200 M 這里修改滿足你需要的大小,
可以同時修改其他兩項memory_limit=250M post_max_size=200M
這樣就可以MySQL導入200M以下的.sql文件了。
原文地址:http://www.benbener.cn/question/39