㈠ 如何在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文件)
提示输入密码时,输入该数据库用户名的密码。