㈠ 如何在mysql中導入/導出超大的sql文本文件
在mysql中導入/導出超大的sql文本文件,我們可以使用很多方法實例,如有:客戶端直接命令操作,分塊導入,客戶端用source命令操作等等。
在實際工作中,有時經常地時行mysql資料庫的導入和導入操作,但對於大型sql文件導入時,phpmyadmin是不行的,有太多限制,比如記錄,內存等!
多種方案收集,如下:
方案一:客戶端直接命令操作(此方法是我比較喜歡的)
剛恢復一個電商網站mysql備份數據,此備份文件有300多M,因為phpmyadmin支持上傳有限,文件太大IE停止響應,所以在本地用
代碼如下
復制代碼
mysql -u root -p root jiahuibuydb<
c:/yebihai.sql
但沒導入進去,出來一大堆mysql的參數提示,不認輸入的命令參數,後來寫成下面這個樣子,就是去掉了參數和數據之間的空格
代碼如下
復制代碼
mysql -uroot -proot jiahuibuydb<
c:/yebihai.sql
導入就OK了
導出命令:
a)導出整個庫
mysqlmp -u 用戶名 -p 資料庫名 > 導出的文件名
代碼如下
復制代碼
mysqlmp -u root -p student
>d:/yebihai.sql
b)導出一個表
mysqlmp -u 用戶名 -p 資料庫名 表名> 導出的文件名
方案二:分塊導入
代碼如下
復制代碼
<?
//用來快速Mysql的大數據備份
//使用前請首先按照代碼注釋修改要導入的SQL文件名、資料庫主機名、資料庫用戶名、密碼、資料庫名
//同時將資料庫文件和本文本一起ftp導網站目錄,然後以web方式訪問此文件即可
$file_name="sql.sql"; //要導入的SQL文件名
$dbhost="localhost"; //資料庫主機名
$dbuser="user"; //資料庫用戶名
$dbpass="pass"; //資料庫密碼
$dbname="dbname";
//資料庫名
set_time_limit(0); //設置超時時間為0,表示一直執行。當php在safe
mode模式下無效,此時可能會導致導入超時,此時需要分段導入
$fp = @fopen($file_name, "r") or
die("不能打開SQL文件 $file_name");//打開文件
mysql_connect($dbhost, $dbuser,
$dbpass) or die("不能連接資料庫 $dbhost");//連接資料庫
mysql_select_db($dbname)
or die ("不能打開資料庫 $dbname");//打開資料庫
mysql_query('set names utf8');
echo "正在執行導入操作";
while($SQL=GetNextSQL()){
if
(!mysql_query($SQL)){
echo
"執行出錯www.111cn.net:".mysql_error()."
";
echo
"SQL語句為:
".$SQL."
";
};
}
echo
"導入完成";
fclose($fp) or die("Can』t close file $file_name");//關閉文件
mysql_close();
//從文件中逐條取SQL
function GetNextSQL() {
global $fp;
$sql="";
while ($line =
@fgets($fp, 40960)) {
$line =
trim($line);
//以下三句在高版本php中不需要,在部分低版本中也許需要修改
$line =
str_replace("////","//",$line);
$line =
str_replace("/』","』",$line);
$line =
str_replace("//r//n",chr(13).chr(10),$line);
// $line
= stripcslashes($line);
if (strlen($line)>1)
{
if ($line[0]=="-" && $line[1]=="-")
{
continue;
}
}
$sql.=$line.chr(13).chr(10);
if
(strlen($line)>0){
if
($line[strlen($line)-1]==";"){
break;
}
}
}
return $sql;
}
?>
方案三:客戶端用source命令操作
比較好的辦法仍是用mysql的source命令:
一、在客戶端下操作:
1、進行入客戶端 代碼如下
復制代碼
2、mysql>use 資料庫名(如果沒有,先建一個)
3、mysql>set names 'utf8'; (一般看導入的是什麼格式的文件)
4、mysql>source d:/aaa.sql;
即可正常導入,如果有錯,可以看出錯提示
二、PHP文件操作:
建立a.php
裡面有下面內容 代碼如下
復制代碼
mysql_connet('xxxx');
mysql_query("set names 'utf8'");
mysql_query("source d:/aaa.sql'");
原理同上,主要方便了無法使用命令行用戶的操作
方案四:下面教大家一個簡單有效的辦法,適合不會使用命令窗口的非技術人員,可以導入任意大小的mysql資料庫,理論上不論您的資料庫備份文件多大,都可以導入
方法如下:
1.將資料庫備份文件(如backup.sql)上傳至網站根目錄。
2.將以下代碼保存為mysql.php文件,上傳至網站根目錄。
代碼如下
復制代碼
system("mysql -hdbhost -udbuser -ppassword dbname < backup.sql");
print "導入成功";
其中
dbhost 改為您的資料庫伺服器地址(小提示:一般主機默認資料庫伺服器地址是:localhost)
dbuser 改為您的資料庫用戶名
password 改為您的資料庫用戶密碼
dbname 改為您的資料庫名(導入的時候此庫必須先建立好,否則會失敗並且不會進行任何提示)
backup.sql表示通過ftp上傳到網站根目錄下資料庫文件的文件名(該文件是解壓縮後的文件)
3.在瀏覽器裡面訪問mysql.php, 那麼就在瀏覽器裡面輸入/mysql.php,只要瀏覽器一訪問這個mysql.php文件,數據就開始導入,數據導入結束後,就會顯示「導入成功」的字樣。這個時間根據您要導入的數據大小決定,一般時間很短
㈡ CMS鍑犵櫨涓囨枃絝犳暟鎹鐨刴ysql鏁版嵁搴撳備綍瀵煎嚭瀵煎叆錛
瀵逛簬鏁扮櫨涓囨潯鏁版嵁鐨凪ySQL鏁版嵁搴擄紝瀵煎叆瀵煎嚭鍙浠ヤ嬌鐢ㄤ互涓嬫柟娉曪細
浣跨敤mysqlmp榪涜屽煎嚭鍜屽煎叆
瀵煎嚭錛氫嬌鐢╩ysqlmp鍛戒護灝嗘暟鎹搴撳煎嚭涓.sql鏂囦歡銆備緥濡傝剨絎戝拰錛岃佸煎嚭鍚嶄負my_database鐨勬暟鎹搴擄紝璇蜂嬌鐢ㄤ互涓嬪懡浠わ細mysqlmp -u username -p my_database > my_database.sql
瀵煎叆錛氬皢.sql鏂囦歡瀵煎叆鍒板彟涓涓狹ySQL鏈嶅姟鍣ㄦ垨鍚屼竴鏈嶅姟鍣ㄤ笂鍗囦笘鐨勪笉鍚屾暟鎹搴撲腑銆備緥濡傦紝瑕佸皢my_database.sql瀵煎叆鍒板悕涓簃y_new_database鐨勬暟鎹搴撲腑錛岃蜂嬌鐢ㄤ互涓嬪懡浠わ細mysql -u username -p my_new_database < my_database.sql
浣跨敤妯辯洴MySQL Workbench榪涜屽煎嚭鍜屽煎叆
瀵煎嚭錛氫嬌鐢∕ySQL Workbench榪炴帴鍒癕ySQL鏈嶅姟鍣錛岄夋嫨瑕佸煎嚭鐨勬暟鎹搴擄紝鍙抽敭鍗曞嚮鏁版嵁搴撳苟閫夋嫨鈥滃煎嚭鈥濄傞夋嫨瑕佸煎嚭鐨勮〃鍜屾暟鎹錛屽皢瀵煎嚭鏂囦歡淇濆瓨涓.sql鏂囦歡銆
瀵煎叆錛氫嬌鐢∕ySQL Workbench榪炴帴鍒板彟涓涓狹ySQL鏈嶅姟鍣ㄦ垨鍚屼竴鏈嶅姟鍣ㄤ笂鐨勪笉鍚屾暟鎹搴撱傞夋嫨瑕佸煎叆鐨勬暟鎹搴擄紝鍙抽敭鍗曞嚮璇ユ暟鎹搴撳苟閫夋嫨鈥滃煎叆鈥濓紝閫夋嫨瑕佸煎叆鐨.sql鏂囦歡騫跺紑濮嬪煎叆榪囩▼銆
璇鋒敞鎰忥紝鍦ㄥ煎叆瀵煎嚭澶ч噺鏁版嵁鏃訛紝鍙鑳介渶瑕佽冭檻浠ヤ笅鍥犵礌錛氬煎嚭鏂囦歡鐨勫ぇ灝忋佸煎嚭榪囩▼鐨勬椂闂淬佸煎叆榪囩▼鐨勬椂闂淬丮ySQL鏈嶅姟鍣ㄧ殑鎬ц兘鍜屽彲鐢ㄧ┖闂寸瓑絳夈
㈢ 如何將資料庫的表導出生成Excel
方法一:對於會寫查詢SQL語句的則是直接寫查詢語句查詢出結果。如下圖:
接下來到桌面新建一個空的excel文件。
接下來回到SQLServer查詢界面。滑鼠右鍵點擊查詢結果的左上角空白列,點擊「連同標題一起復制」。則已復制好了數據。如下圖:
接下來打開之前建好的Excel文件把復制好的數據黏貼到excel即可。如下圖:
方法二:對於不會寫查詢SQL語句的則使用資料庫導出方法。
選中要導出數據的資料庫,點擊右鍵會彈出一個右鍵菜單。點擊「任務」再點擊「導出數據(x)」。如下圖:
點擊了「導出數據(x)」後會彈出一個界面,並填寫好信息。如下圖:
點擊下一步跳轉到如下圖1中的界面。在目標中選中excel類型,界面信息則發生改變,並選中導出的excel路徑。如下圖2。
點擊下一步跳轉至如下界面,選中第一個選項。如下圖:
點擊下一步,勾選要導出的表。如下圖:
點擊下一步,跳轉至如下界面:
點擊下一步:跳轉到如下圖1界面,選擇下一步在點擊完成,則會跳到如下圖2界面。證明已經導出成功了。
打開excel就可用看到導出的Excel了。如下圖:
㈣ mysql濡備綍鍒╃敤Navicat瀵煎嚭鍜屽煎叆鏁版嵁搴撶殑鏂規硶
MySql鏄鎴戜滑緇忓父鐢ㄥ埌鐨勬暟鎹錛屾棤璁烘槸寮鍙戜漢鍛樼敤鏉ョ粌涔狅紝榪樻槸灝忓瀷縐佹湇娓告垙鏈嶅姟鍣錛屾垨鑰呮槸涓浜鴻蔣浠舵惌鎼浣跨敤錛岄兘鍗佸垎鏂逛究銆傚逛簬鍋氫竴浜涗釜浜鴻緟鍔╄蔣浠訛紝鎷嗘媿閫夋嫨mysql鏁版嵁搴撴槸涓鏄庢櫤鐨勯夋嫨錛屾湁涓涓濂界殑宸ュ叿鏇存槸浜嬪崐鍔熷嶏紝瀵逛簬MySql 鐨処DE 鎴戞帹鑽怤avicat for MySql錛岀幇鍦ㄦ垜灝卞悜澶у朵粙緇嶅備綍鍒╃敤Navicat for MySql 瀵煎嚭鍜屽煎叆鏁版嵁銆
瀵煎嚭鏁版嵁搴擄細
鎵撳紑Navicat 錛屽湪鎴戜滑瑕佸埌澶勭殑鏁版嵁涓婇潰鍙沖嚮榧犳爣錛岀劧鍚庡脊鍑虹殑蹇鎹瘋彍鍗曚笂鐐瑰嚮鈥滆漿鍌⊿QL 鏂囦歡鈥濓紝鍦ㄥ啀嬈″脊鍑虹殑瀛愯彍鍗曢」涓閫夋嫨絎涓涓鈥滄暟鎹璺熺粨鏋勨濄
鐒跺悗錛屽湪浼氬脊鍑轟竴涓閫夋嫨淇濆瓨浣嶇疆鐨勪繚瀛樻嗭紝閫夋嫨濂戒綅緗鍚庯紝鐐圭『瀹氾紝灝監K浜
瀵煎叆鏁版嵁搴擄細
鎵撳紑Navicat for MySQL錛岀劧鍚庣偣鍑誨彸閿閫夋嫨鏂板緩鏁版嵁搴擄紝鍚嶅瓧璺熸垜浠瑕佸煎叆鐨勬暟鎹鐨勫悕瀛椾竴鏍
鐐瑰嚮紜瀹氬悗錛屾垜浠灝卞彲浠ヨ佸埌宸﹁竟鍑虹幇鍒氬垰鎴戜滑寤虹珛濂界殑鏁版嵁浜嗭紝鐒跺悗鍙沖嚮閫夋嫨鈥滆繍琛孲QL鏂囦歡鈥濅細寮瑰嚭涓涓妗嗭紝鐐瑰嚮鈥...鈥濋夋嫨鏂囦歡鎵鍦ㄧ殑璺寰勶紝
鐐瑰嚮寮濮嬶紝鏂囦歡灝變細瀵煎叆鎴愬姛錛
涓ユ牸鏉ヨ詫紝鍏跺疄Navicat for MySQL瀵煎嚭鐨勪笉鏄鏁版嵁搴擄紝鑰屾槸鏁版嵁搴撲腑鐨勬墍鏈夎〃鐨勬暟鎹浠ュ強緇撴瀯銆傛墍浠ワ紝濡傛灉浣犱笉寤虹珛涓庝箣瀵瑰簲鐨勬暟鎹搴擄紝鑰屾槸闅忎究鎵句竴涓鏁版嵁瀵煎叆錛岀粨鏋滄槸榪欎釜鏁版嵁搴撳氫簡鍑犲紶鍒氬垰瀵煎叆鐨勮〃銆
PS錛歮ysql 鏁版嵁搴撳煎叆瀵煎嚭鏂規硶鎬葷粨
涓鑸褰㈠紡錛歮ysqlmp -h IP -u 鐢ㄦ埛鍚 -p 鏁版嵁搴撳悕 > 瀵煎嚭鐨勬枃浠跺悕
錛1錛-p 鍚庨潰涓嶈兘鍔爌assword錛屽彧鑳藉崟鐙杈撳叆濡1涓閭f牱 錛2錛塵ysqlmp鏄鍦╟md涓嬬殑鍛戒護錛屼笉鑳藉啀mysql涓嬮潰錛屽嵆涓嶈兘榪涘叆mysql鐨勶紙鍗硊se dpname涓嬶紝寰梕xit閫鍑簃ysql涓嬫墠鍙浠ョ殑銆傦級
涓錛氭暟鎹搴撶殑瀵煎嚭錛堝囦喚錛
0:(澶囦喚鏁版嵁搴撳嵆瀵煎嚭鎵鏈夎〃浠ュ強鏁版嵁 涓嶅姞-d)
mysqlmp -h localhost -u root -p test > G:arcgisworkspacezypdoc est.sql
mysqlmp -h 10.180.6.183 -u root -p dmsdev > D:imssdb20170930dmsdev20170930.sql
mysqlmp -h 10.180.6.183 -u root -p newfwk > D:imssdb20170930
ewfwk20170930.sql
mysqlmp -h 10.180.6.183 -u root -p dcsdev > D:imssdb20170930dcsdev20170930.sql
浜岋細鏁版嵁搴撶殑瀵煎叆(榪樺師)
0錛氬煎叆鏁版嵁搴擄紙棣栧厛寰楀壋寤烘暟鎹錛屽啀瀵煎叆錛塁:Program FilesMySQLMySQL Server 5.5in>
mysql -h localhost -u root -p錛堣繘鍏mysql涓嬮潰錛
create database abc;(鍒涘緩鏁版嵁搴)
show databases;(灝卞彲鐪嬪埌鎵鏈夊凡緇忓瓨鍦ㄧ殑鏁版嵁搴擄紝浠ュ強鏃呮灊緹″垰鍒氬壋寤虹殑鏁版嵁搴揳bc)
use abc;(榪涘叆abc鏁版嵁搴撲笅闈)
show tables;(浜х湅abc鏁版嵁搴撲笅闈㈢殑鎵鏈夎〃,絀虹殑)
source G:arcgisworkspacezypdoc est.sql錛堝煎叆鏁版嵁搴撹〃錛
show tables;(鏌ョ湅abc鏁版嵁搴撲笅闈㈢殑鎵鏈夎〃,灝卞彲浠ョ湅鍒拌〃浜)
desc pollution;(鏌ョ湅琛ㄧ粨鏋勮捐)
select * from pollution;
exit(鎴栬卌trl + c)閫鍑簃ysql
㈤ mysql如何導出、導入資料庫和表,詳細一點
1、導出整個資料庫
mysqlmp -u 用戶名 -p 資料庫名 > 導出的文件名
mysqlmp -u dbuser -p dbname > dbname.sql
2、導入數據到資料庫
mysql -uroot -D資料庫名
3、導出一個表
mysqlmp -u 用戶名 -p 資料庫名 表名> 導出的文件名
mysqlmp -u dbuser -p dbname users> dbname_users.sql
4、導入數據到資料庫中得某個表
mysql -uroot -D資料庫名 表名
啟動跟蹤:
mysqld --debug
關閉伺服器:
mysqladmin -u root shutdown
啟動服務:
mysqld --console
顯示資料庫列表:
show databases;
顯示庫中的數據表:
use mysql; //打開庫,學過 FOXBASE 的一定不會陌生吧
show tables;
顯示數據表的結構:
describe 表名;
建庫:
create database 庫名;
建表:
use 庫名;
create table 表名 (欄位設定列表);
刪庫和刪表:
drop database 庫名;
drop table 表名;
將表中記錄清空:
delete from 表名;
顯示表中的記錄:
select * from 表名;
顯示最後一個執行的語句所產生的錯誤、警告和通知:
show warnings;
只顯示最後一個執行語句所產生的錯誤:
show errors;
㈥ MySQL資料庫怎麼導出數據
方法一
cmd 到mysql bin目錄下用 如下命令 mysqlmp --opt -h192.168.0.156 -uusername -ppassword --skip-lock-tables databasename>database.sql
把ip改成localhost就可以的
如果裝了navicate那就更簡單了 先連接上資料庫,選中資料庫 再選擇轉儲sql 就好了
方法二
進入cmd (注意在os cmd中 而不是在mysql中)
===================
1.導出資料庫(sql腳本)
mysqlmp -u 用戶名 -p 資料庫名 > 導出的文件名
mysqlmp -u root -p db_name > test_db.sql
2.mysql導出資料庫一個表
mysqlmp -u 用戶名 -p 資料庫名 表名> 導出的文件名
mysqlmp -u wcnc -p test_db users> test_users.sql (結尾沒有分號)
方法三
啟動mysql服務
/etc/init.d/mysql start
導出整個資料庫
mysqlmp dbname > c:mydb.sql -u root -p
導入資料庫
source mydb.sql
mysql -u用戶名 -p 資料庫名 < 資料庫名.sql
更詳細的導入資料庫教程
2.1. 導出sql腳本
在原資料庫伺服器上,可以用php教程myadmin工具,或者mysqlmp(mysqlmp命令位於mysql/bin/目錄中)命令行,導出sql腳本。
2.1.1 用php(www.111cn.net)myadmin工具
導出選項中,選擇導出"結構"和"數據",不要添加"drop database"和"drop table"選項。
選中"另存為文件"選項,如果數據比較多,可以選中"gzipped"選項。
將導出的sql文件保存下來。
2.1.2 用mysqlmp命令行
命令格式
mysqlmp -u用戶名 -p 資料庫名 > 資料庫名.sql
範例:
mysqlmp -uroot -p abc > abc.sql
(導出資料庫abc到abc.sql文件)
提示輸入密碼時,輸入該資料庫用戶名的密碼。
2.2. 創建空的資料庫
通過主控界面/控制面板,創建一個資料庫。假設資料庫名為abc,資料庫全權用戶為abc_f。
2.3. 將sql腳本導入執行
同樣是兩種方法,一種用phpmyadmin(mysql資料庫管理)工具,或者mysql命令行。
2.3.1 用phpmyadmin工具
從控制面板,選擇創建的空資料庫,點"管理",進入管理工具頁面。
在"sql"菜單中,瀏覽選擇剛才導出的sql文件,點擊"執行"以上載並執行。
注意:phpmyadmin對上載的文件大小有限制,php本身對上載文件大小也有限制,如果原始sql文件
比較大,可以先用gzip對它進行壓縮,對於sql文件這樣的文本文件,可獲得1:5或更高的壓縮率。
gzip使用方法:
# gzip xxxxx.sql
得到
xxxxx.sql.gz文件。
2.3.2 用mysql命令行
命令格式
mysql -u用戶名 -p 資料庫名 < 資料庫名.sql
範例:
mysql -uabc_f -p abc < abc.sql
(導入資料庫abc從abc.sql文件)
提示輸入密碼時,輸入該資料庫用戶名的密碼。