免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2589 | 回复: 0
打印 上一主题 下一主题

用phpMyadmin导入SQL大文件到mysql数据库的解决方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-23 03:58 |只看该作者 |倒序浏览
<p>最近一次在用phpmyadmin导入mysql数据库时,偶的15M的数据库不能导入,mysql数据库最大只能导入2M..<br>
phpmyadmin数据库导入出错:<br>
You<br>
probably tried to upload too large file. Please refer to documentation for ways<br>
to workaround this<br>
limit.<br>
可以修改导入数据库文件最大限制吗?<br>
到网上搜索了一下前人的解决办法,大多数都说修改php.ini中的upload_max_filesize,但修改了这个以后,还是提示这个问题;但
phpmyadmin在提示这个问题的时候,右下角有一行英文提示,大致意思是说,解决这个问题,可以参考phpmyadmin文档;直接点击这个链
接,phpmyadmin自动查找到了以下说明:<br>
[1.16]<br>
I cannot upload big dump files (memory, http or timeout problems).<br>
Starting<br>
with version 2.7.0, the import engine has been re–written and these problems<br>
should not occur. If possible, upgrade your phpMyAdmin to the<br>
latest version to take advantage of the new import features.<br>
The first<br>
things to check (or ask your host provider to check) are the values of<br>
upload_max_filesize, memory_limit and post_max_size in the php.ini configuration<br>
file. All of these three settings limit the maximum size of data that can be<br>
submitted and handled by PHP. One user also said that post_max_size and<br>
memory_limit need to be larger than<br>
upload_max_filesize.<br>
以上文件大致说明的意思就是说,遇到导入过大文件时,首先检查php.ini<br>
配置文件中的以下三个地方,upload_max_filesize, memory_limit<br>
和post_max_size,并且推荐修改的值要稍大于导入的巨大sql数据库文件;依照这个提示,我修改了以上三个在php.ini中的值以后,重启了php环境,再次导入时,虽然phpmyadmin还是显示导入最大限制:20,480<br>
KB,但巨大的80M数据库文件已经被成功的导入
了。&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
如何在mysql中批量导入大的sql文本文件?<br>
在实际工作中,有时经常地时行mysql数据库的导入和导入操作,但对于大型sql文件导入时,phpmyadmin是不行的,有太多限制,比如记录,内存等!  比较好的办法仍是用mysql的source命令:<br>
一、在客户端下操作:<br>
1、进行入客户端<br>
2、mysql&gt;use<br>
数据库名(如果没有,先建一个)<br>
3、mysql&gt;set names ‘utf8′;<br>
(一般看导入的是什么格式的文件)<br>
4、mysql&gt;source<br>
d:\aaa.sql;<br>
即可正常导入,如果有错,可以看出错提示  二、PHP文件操作:<br>
建立a.php<br>
里面有下面内容<br>
mysql_connet(‘xxxx’);<br>
mysql_query(“set<br>
names ‘utf8′”);<br>
mysql_query(“source<br>
d:\aaa.sql’”);原理同上,主要方便了无法使用命令行用户的操作<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
如何在mysql中批量导入大的sql文本文件?<br>
$file_name=”sql.sql”; //要导入的SQL文件名<br>
$dbhost=”localhost”;<br>
//数据库主机名<br>
$dbuser=”user”; //数据库用户名<br>
$dbpass=”pass”;<br>
//数据库密码<br>
$dbname=”dbname”;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //数据库名&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set_time_limit(0);<br>
//设置超时时间为0,表示一直执行。当php在safe mode模式下无效,此时可能会导致导入超时,此时需要分段导入<br>
$fp =<br>
@fopen($file_name, “r”) or die(“不能打开SQL文件 $file_name”);//打开文件</p>
<p>mysql_connect($dbhost, $dbuser, $dbpass) or die(“不能连接数据库 $dbhost”);//连接数据库</p>
<p>mysql_select_db($dbname) or die (“不能打开数据库<br>
$dbname”);//打开数据库<br>
mysql_query(‘set names utf8′);<br>
echo<br>
“正在执行导入操作”;<br>
while($SQL=GetNextSQL()){<br>
if<br>
(!mysql_query($SQL)){<br>
echo<br>
“执行出错:”.mysql_error().”<br>
“;<br>
echo<br>
“SQL语句为:<br>
“.$SQL.”<br>
“;<br>
};<br>
}<br>
echo<br>
“导入完成”;<br>
fclose($fp) or die(“Can’t close file<br>
$file_name”);//关闭文件<br>
mysql_close();<br>
//从文件中逐条取SQL</p><p>function GetNextSQL() {<br>
global $fp;</p><p>$sql=”";<br>
while ($line = @fgets($fp, 40960)) {</p>
<p>$line = trim($line);</p>
<p>//以下三句在高版本php中不需要,在部分低版本中也许需要修改<br>
$line =<br>
str_replace(“\\\\”,”\\”,$line);<br>
$line =<br>
str_replace(“\’”,”’”,$line);<br>
$line =<br>
str_replace(“\\r\\n”,chr(13).chr(10),$line);<br>
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $line<br>
= stripcslashes($line);<br>
if (strlen($line)&gt;1)<br>
{<br>
if ($line[0]==”-” &amp;&amp; $line[1]==”-”)<br>
{<br>
continue;</p>
<p>}<br>
}</p>
<p>$sql.=$line.chr(13).chr(10);<br>
if<br>
(strlen($line)&gt;0){<br>
if<br>
($line[strlen($line)-1]==”;”){</p>
<p>break;<br>
}<br>
}</p>
<p>}<br>
return $sql;</p>
<p>}<br>
?&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
mysql如何导入大SQL文件<br>
今天需要对MYSQL导入一个13M的SQL文件,可是PHPMYADMIN只支持到2M,网上找了找,发现可以使用source命令,以下就是方法:<br>
1.导入数据库<br>
常用source<br>
命令<br>
进入mysql数据库控制台,<br>
如mysql -u atyu -p<br>
mysql&gt;use<br>
web3guo<br>
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)<br>
mysql&gt;source<br>
c:\web3guo.sql<br>
2.导出整个数据库<br>
mysqldump -u 用户名 -p 数据库名 &gt;<br>
导出的文件名<br>
3.导出一个表<br>
mysqldump -u 用户名 -p 数据库名 表名&gt;<br>
导出的文件名<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;MySQL
导入大SQL文件<br>
2008年02月08日<br>
星期五 下午<br>
07:21刚导入一个从mysql库导出的300多M的备份文件,因为phpmyadmin最多支持8M的,文件太大IE停止响应,所以在本地用<br>
mysql -u<br>
root -p yourpassword yourdatabasename<br>
导出简单命令:<br>
mysqldump -u 用户名 -p 数据库名<br>
&gt; 导出的文件名<br>
mysqldump -u root -p student<br>
&gt;d:\student.sql&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
Mysql导入大数据库文件的办法<br>
phpmyadmin是个很方便的mysql数据库管理工具,可以用来管理mysql数据库,导入,导出等。<br>
但是phpmyadmin在导入mysql的时候有个问题,如果要导入的数据库文件比较大,那么导入就会失败。下面教大家一个简单有效的办法,可以导入任意大小的mysql数据库,理论上不论您的数据库备份文件多大,都可以导入。<br>
方法如下:<br>
1.将数据库备份文件(如backup.sql)上传至网站根目录。<br>
2.将以下代码保存为mysql.php文件,上传至网站根目录。<br>
system(“mysql<br>
-hdbhost -udbuser -ppassword dbname<br>
其中<br>
dbhost<br>
改为您的数据库服务器地址(小提示:一般主机默认数据库服务器地址是:localhost)<br>
dbuser 改为您的数据库用户名<br>
password<br>
改为您的数据库用户密码<br>
dbname<br>
改为您的数据库名<br>
backup.sql表示通过ftp上传到网站根目录下数据库文件的文件名(该文件是解压缩后的文件)<br>
3.在浏览器里面访问mysql.php,假设你的网站域名是http://shop.tianxinled.com,那么就在浏览器里面输入http:
//shop.tianxinled.com,只要浏览器一访问这个mysql.php文件,数据就开始导入,数据导入结束后,就会显示“导入成功”的字
样。这个时间根据您要导入的数据大小决定,一般时间很短。</p>
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP