MySQL導入大容量SQL文件


1,有服務器權限的。直接COPY文件。WIN一般是MYSQL安裝目錄的data下你的用戶名。LINUX是安裝目錄下的var,其他系統不清楚。

 

2,如果是SQL格式的。有的可能上100M之類的。用source導入。source 文件名

解釋:在導入之前先要選擇好那個用戶。

cd /mysql目錄

cd bin

mysql -u root -p(LINUX基本要加上路徑的。比如/usr/local/mysql/bin/mysql這樣)

--密碼

use 用戶名

source 文件名(如果把文件放到MYSQL安裝目錄的bin下邊的話。就直接加文件名就行了。否則要加上路徑。比如source /home/www/test.sql)

---------

今天正好有空,前幾天infofast.cn的數據庫被dreamhost給刪了,不過在刪之前,它還是幫我將數據庫備份到了ftp上,始終沒有想通為什么infofast占了dreamhost很多cpu…

今天下午下載下來后,猛然發現我的mysql數據庫竟然有200多M,雜辦呢??隨后baidu,google一番,找到方法:

修改PHP.ini文件的以下參數:

upload_max_filesize

memory_limit

post_max_size

這三個值設置的都要比數據庫文件大,,比如你的數據庫大小是300M,那么upload_max_filesize = 500M..還有一點是在英文的幫助中看到的”One user also said that post_max_size and memory_limit need to be larger than upload_max_filesize.”.它的意思是有人建議post_max_size和memory_limit的配置值要大於upload_max_file的配置值。。

好了后,重起下php和mysql,應該就可以了。。。

-------

MySQL的mysqldump工具導入導出數據庫!

1.導出整個數據庫(Dos下)

mysqldump -u 用戶名 -p 數據庫名 > 導出的文件名

mysqldump -u chai -p smgp_apps_wcnc > chai.sql

2.導出一個表

mysqldump -u 用戶名 -p 數據庫名 表名> 導出的文件名

mysqldump -u chai   -p smgp_apps_wcnc users>chai.sql

3.導出一個數據庫結構

mysqldump -u chai -p -d --add-drop-table smgp_apps_wcnc >d:\chai.sql

-d 沒有數據 --add-drop-table 在每個create語句之前增加一個drop table

4.導入數據庫

常用source 命令

進入mysql數據庫控制台,

如mysql -u root -p

  

mysql>use 數據庫

然后使用source命令,后面參數為腳本文件(如這里用到的.sql)

mysql>source d:\chai.sql

-------------------

MySQL導入大SQL文件

五一放個假都不安心,一個庫有1.4G,在從服務器上導出只有一半,主服務器上登陸不了,用PM也只能導出一半,想了兩天法子了,要ROOT密碼要不到,沒辦法了,只有跳過ROOT密碼,然后再更改為只有自己知道的密碼。

1. 關閉 MySQL 伺服器。

2. 用以下指令啟動 MySQL,以跳過檢查權限的資料表

mysqld_safe –skip-grant-tables &<

3. 現在己經可以用空密碼進入 MySQL

mysql -u root

4. 進入 MySQL 後執行以下指令更改 mysql root 密碼:

mysql> update mysql.user set password=PASSWORD(”new_password”) where User=’root’;

mysql> flush privileges;

mysql> quit

5. 最後只需重新啟動 MySQL,便可以用新設定的密碼進入了。

mysql -uroot -pyourpassword yourdatabasename < /paths/sqlfile.sql (文件太大可在后面加個&)==========================================================================================

出現非ROOT帳戶本地不能登陸的情況,提示use password yes,可能需要先用ROOT登陸后重新設定非ROOT用戶,包括刪除重建

============================================================================================

1.導入數據庫

  常用source 命令

  進入mysql數據庫控制台,

  如mysql -u atyu -p

  mysql>use 數據庫

  然后使用source命令,后面參數為腳本文件(如這里用到的.sql)

  mysql>source /data/atyu30_db.sql

2.導出整個數據庫

  mysqldump -u 用戶名 -p 數據庫名 > 導出的文件名

  mysqldump -u atyu -p atyu_bbs > atyu_bbs.back.sql

3.導出一個表

  mysqldump -u 用戶名 -p 數據庫名 表名> 導出的文件名

  mysqldump -u atyu -p bbs users> atyu_users.sql

4.導出一個數據庫結構

  mysqldump -u atyu -p -d --add-drop-table bbs >/data/atyu_bbs.sql

  -d 沒有數據 --add-drop-table 在每個create語句之前增加一個drop table

----

今天的這篇文章用來討論如何解決導入mysql大數據文件的問題,其實說的簡單了就是一條SQL語句,而如果你是一名SQL高手,那完全可以略過此文。

對於經常使用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在中文下會出錯) 。

這是一個很好的辦法,但是也不是所有的人都可以用這個方法的,因為前提是你的空間必須支持SSH登錄,而支持SSH登錄的空間還是比較少的,這真是挺讓人遺憾的。

還有一個辦法就是把phpmyadmin里面的import那個功能模塊提取出來,稍微改動一下也可以達到相同的效果。當然如果你是一個PHP高手,也可以自己寫一個導入的程序,可以直接選擇一個服務器的路徑


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM