如何导入超大mysql数据库备份文件

如何导入超大mysql数据库备份文件,第1张

在mysql中导入/导出超大的sql文本文件,我们可以使用很多方法实例,如有:客户端直接命令 *** 作,分块导入,客户端用source命令 *** 作等等。

在实际工作中,有时经常地时行mysql数据的导入和导入 *** 作,但对于大型sql文件导入时,phpmyadmin是不行的,有太多限制,比如记录,内存等!

多种方案收集,如下:

方案一:客户端直接命令 *** 作(此方法是我比较喜欢的)

刚恢复一个电商网站mysql备份数据,此备份文件有300多M,因为phpmyadmin支持上传有限,文件太大IE停止响应,所以在本地用

代码如下

复制代码

mysql -u root -p root jiahuibuydb<

c:/yebihaisql

但没导入进去,出来一大堆mysql的参数提示,不认输入的命令参数,后来写成下面这个样子,就是去掉了参数和数据之间的空格

代码如下

复制代码

mysql -uroot -proot jiahuibuydb<

c:/yebihaisql

导入就OK了

导出命令:

a)导出整个库

mysqldump -u 用户名 -p 数据库名 > 导出的文件名

代码如下

复制代码

mysqldump -u root -p student

>d:/yebihaisql

b)导出一个表

mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名

方案二:分块导入

代码如下

复制代码

<

//用来快速Mysql的大数据备份

//使用前请首先按照代码注释修改要导入的SQL文件名、数据库主机名、数据库用户名、密码、数据库名

//同时将数据库文件和本文本一起ftp导网站目录,然后以web方式访问此文件即可

$file_name="sqlsql"; //要导入的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

"执行出错>

抄一段给你看看,应该有些帮助。

一般网站经常用phpmyadmin备份和恢复数据库,但默认总是限制了16M。网站数据一多就不行了。

解决方法如下:

(1)修改phpini适用自己有服务器的人

大多数都修改phpini中的upload_max_filesize,但修改了这个以后,还是提示这个问题;

那么更改如下几处:

修改 PHPini

file_uploads on 是否允许通过>

大型的数据库开发中常常遇到数据源是平面文件的情况 对于这样的数据源 无法使用数据库对其数据进行有效的管理 本文介绍几种常见的数据导入的方法 希望能够给读者以启迪 另外 本文所涉及到的数据库均为ORACLE数据库 其实对于其他数据库而言 方法类似 一 Sql:Loader 该方法是Oracle数据库下数据导入的最重要的方法之一 该工具由Oracle客户端提供 其基本工作原理是 首先要针对数据源文件制作一个控制文件 控制文件是用来解释如何对源文件进行解析 其中需要包含源文件的数据格式 目标数据库的字段等信息 一个典型的控制文件为如下形式 LOAD DATAINFILE /ora i/fengjie/agent/data/ipaagentdetail txt TRUNCATEINTO TABLE fj_ipa_agentdetailfields terminated trailing nullcols( AGENT_NO char AGENT_NAME char AGENT_ADDRESS char AGENT_LINKNUM char AGENT_LINKMAN char)其中 INFILE /ora i/fengjie/agent/data/ipaagentdetail txt 指明所要导入的源文件 其实源文件也可以直接通过命令行来输入获得 fj_ipa_agentdetail为目标表的名字 fields terminated 是指源文件的各个字段是以逗号分隔 trailing nullcols表示遇到空字段依然写入到数据库表中 最后这5个字段是目标数据库表的字段结构 通过上面这个典型的控制文件的格式分析可知 控制文件需要与源文件的格式信息一致 否则导入数据会出现异常 除了控制以外 sqlloader的还需要数据文件 即源文件 根据格式的不同 源文件可以分为固定字段长度和有分隔符这两大类 这里将分别说明这两种情况 固定字段长度的文本文件就是每个字段拥有固定的字段长度 比如 有分隔符的文本文件就是每个字段都有相同的分隔符分隔 比如 上海长途电信综合开发公司 南京东路 号 室 上海桦奇通讯科技有限公司 武宁路 号 室 上海邦正科技发展有限公司 南京东路 号 室对于上述两种文件格式sqlloader均可以做处理 下面就前面那个固定长度的文本来举例说明 由于该文本只有两个字段 一个为设备号 一个是区局编号 两者的长度分别为20和5 那么可以编制控制文件如下 LOAD DATAINFILE /ora i/fengjie/agent/data/ipaagent txt TRUNCATEINTO TABLE fj_ipa_agent( DEVNO POSITION( : ) CHAR BRANCH_NO POSITION( : ) CHAR)其中 /ora i/fengjie/agent/data/ipaagent txt 为该文件的完全路径 POSITION(M:N)表示该字段是从位置M到位置N 对于有分隔符的数据文件 前面已经有一个例子 这里就不再赘述了 总之 使用SqlLoader能够轻松将数据文件导入到数据库中 这种方法也是最常用的方法 二 使用专业的数据抽取工具 目前在数据仓库领域中 数据抽取与装载(ETL)是一重要的技术 这一技术对于一些大的数据文件或者文件数量较多尤其适合 这里简单介绍目前一款主流的数据抽取工具――Informatica 该工具主要采用图形界面进行编程 其主要工作流程是 首先将源数据文件的结构(格式)导入为Informatica里 然后根据业务规则对该结构进行一定的转换(transformation) 最终导入到目标表中 以上过程仅仅只是做了一个从源到目标的映射 数据的实际抽取与装载需要在工作流(workflow)里进行 使用专业的数据抽取工具 可以结合业务逻辑对多个源数据进行join union insect等 *** 作 适合于大型数据库和数据仓库 三 使用Access工具导入 可以直接在Access里选择 打开 文本文件 这样按照向导来导入一个文本文件到Access数据库中 然后使用编程的方法将其导入到最终的目标数据库中 这种方法虽然烦琐 但是其对系统的软件配置要求相对较低 所以也是有一定的使用范围 四 小结 总之 平面文件转化为数据库格式有利于数据的处理 显然 数据库强大的数据处理能力比直接进行文件I/O效率高出很多 希望本文能够对该领域做一个抛砖引玉的作用 lishixinzhi/Article/program/Oracle/201311/18530

在实际工作中,有时经常地时行mysql数据库的导入和导入 *** 作,但对于大型sql文件导入时,phpmyadmin是不行的,有太多限制,比如记录,内存等!

比较好的办法仍是用mysql的source命令:

一、在客户端下 *** 作:

1、进行入客户端

2、mysql>use 数据库名(如果没有,先建一个)

3、mysql>set names 'utf8'; (一般看导入的是什么格式的文件)

4、mysql>source d:\aaasql;

即可正常导入,如果有错,可以看出错提示

二、PHP文件 *** 作:

建立aphp

里面有下面内容

mysql_connet('xxxx');

mysql_query("set names 'utf8'");

mysql_query("source d:\aaasql'");

原理同上,主要方便了无法使用命令行用户的 *** 作

以上就是关于如何导入超大mysql数据库备份文件全部的内容,包括:如何导入超大mysql数据库备份文件、怎么快速导入一个超大的mysql文件、300兆的sql文件如何导入mysql数据库中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9346452.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存