最近一次在用phpmyadmin导入mysql数据库时,偶的15M的数据库不能导入,mysql数据库最大只能导入2M.. phpmyadmin数据库导入出错: You probably tried to upload too large file. Please refer to documentation for ways to workaround this limit. 可以修改导入数据库文件最大限制吗? 到网上搜索了一下前人的解决办法,大多数都说修改php.ini中的upload_max_filesize,但修改了这个以后,还是提示这个问题;但 phpmyadmin在提示这个问题的时候,右下角有一行英文提示,大致意思是说,解决这个问题,可以参考phpmyadmin文档;直接点击这个链 接,phpmyadmin自动查找到了以下说明: [1.16] I cannot upload big dump files (memory, http or timeout problems). Starting with version 2.7.0, the import engine has been re–written and these problems should not occur. If possible, upgrade your phpMyAdmin to the latest version to take advantage of the new import features. The first things to check (or ask your host provider to check) are the values of upload_max_filesize, memory_limit and post_max_size in the php.ini configuration file. All of these three settings limit the maximum size of data that can be submitted and handled by PHP. One user also said that post_max_size and memory_limit need to be larger than upload_max_filesize. 以上文件大致说明的意思就是说,遇到导入过大文件时,首先检查php.ini 配置文件中的以下三个地方,upload_max_filesize, memory_limit 和post_max_size,并且推荐修改的值要稍大于导入的巨大sql数据库文件;依照这个提示,我修改了以上三个在php.ini中的值以后,重启 了php环境,再次导入时,虽然phpmyadmin还是显示导入最大限制:20,480 KB,但巨大的80M数据库文件已经被成功的导入了。 如何在mysql中批量导入大的sql文本文件? 在实际工作中,有时经常地时行mysql数据库的导入和导入操作,但对于大型sql文件导入时,phpmyadmin是不行的,有太多限制,比如记录,内存等! 比较好的办法仍是用mysql的source命令: 一、在客户端下操作: 1、进行入客户端 2、mysql>use 数据库名(如果没有,先建一个) 3、mysql>set names 'utf8'; (一般看导入的是什么格式的文件) 4、mysql>source d:/piaoyun.sql; 即可正常导入,如果有错,可以看出错提示 二、PHP文件操作: 建立mysql.php 里面有下面内容 mysql_connet('xxxx'); mysql_query("set names 'utf8'"); mysql_query("source d:/aaa.sql'"); 原理同上,主要方便了无法使用命令行用户的操作 如何在mysql中批量导入大的sql文本文件的方法:
<?php //用来快速Mysql的大数据备份 //使用前请首先按照代码注释修改要导入的SQL文件名、数据库主机名、数据库用户名、密码、数据库名 //同时将数据库文件和本文本一起ftp导网站目录,然后以web方式访问此文件即可 //落伍(www.im286.com)负翁版权所有,可随意使用,但保留版权信息 $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 "执行出错:".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; } ?>mysql如何导入大SQL文件: 今天需要对MYSQL导入一个33M的SQL文件,可是phpmyadmin只支持到2M,网上找了找,发现可以使用source命令,以下就是方法: 1.导入数据库 常用source 命令 进入mysql数据库控制台 如mysql -u atyu -p mysql>use web3guo 然后使用source命令,后面参数为脚本文件(如这里用到的.sql) mysql>source c:/web3guo.sql 2.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 3.导出一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
MySQL导入大SQL文件的方法:
2008年02月08日 星期五 下午 07:21刚导入一个从mysql库导出的300多M的备份文件,因为phpmyadmin最多支持8M的,文件太大IE停止响应,所以在本地用mysql -u root -p yourpassword yourdatabasename < c:/sqlfile.sql但没导入进去,出来一大堆mysql的参数提示,不认输入的命令参数,后来写成下面这个样子,就是去掉了参数和数据之间的空格
mysql -uroot -pyourpassword yourdatabasename < c:/sqlfile.sql导入就OK了。 导入mysql的时候导入不全,提示 :ERROR at line 1586: Unknown command “\”. 解决方法: 导出的时候加上参数: mysqldump --default-character-set=utf8 导入的时候也加上: mysql --default-character-set=utf8 案例: bin>mysql -uroot -p piaoyunccdata --default-character-set=utf8 <d:/piaoyunccdata.sql
备注:
导出整个数据库 mysqldump --add-locks --add-drop-table -e --default-character-set=utf8 -h127.0.0.1 --password=123456 --user=root stt_user > stt_user.sql 导出整个数据库表结构 mysqldump --add-locks --add-drop-table -d --default-character-set=utf8 -h127.0.0.1 --password=123456 --user=root stt_user > stt_user.sql 导出存储过程和函数 mysqldump -hhostname -uusername -ppassword -ntd -R databasename > backupflie.sql mysqldump -hlocalhost -uroot -ntd -R hqgr > hqgr.sql 其中的 -ntd 是表示导出存储过程;-R是表示导出函数 导出一张表数据和结构 mysqldump --add-locks --add-drop-table -e --default-character-set=utf8 -h127.0.0.1 --password=123456 --user=root stt_user member> member.sql 导出多张数据库 mysqldump --add-locks --add-drop-table -e --default-character-set=utf8 -h127.0.0.1 --password=123456 --user=root stt_user stt_config > stt.sql 导入 mysql -uroot -p123456 --default-charac 导出简单命令: mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u root -p student >d:/student.sql Mysql导入大数据库文件的办法: phpmyadmin是个很方便的mysql数据库管理工具,可以用来管理mysql数据库,导入,导出等。 但是phpmyadmin在导入mysql的时候有个问题,如果要导入的数据库文件比较大,那么导入就会失败。下面教大家一个简单有效的办法,可以导入任 意大小的mysql数据库,理论上不论您的数据库备份文件多大,都可以导入。 方法如下: 1.将数据库备份文件(如backup.sql)上传至网站根目录。 2.将以下代码保存为mysql.php文件,上传至网站根目录。<?php system("mysql -hdbhost -udbuser -ppassword dbname < backup.sql"); print "导入成功"; ?>其中 dbhost 改为您的数据库服务器地址(小提示:一般主机默认数据库服务器地址是:localhost) dbuser 改为您的数据库用户名 password 改为您的数据库用户密码 dbname 改为您的数据库名 backup.sql表示通过ftp上传到网站根目录下数据库文件的文件名(该文件是解压缩后的文件) 3.在浏览器里面访问mysql.php,假设你的网站域名是www.piaoyun.org,那么就在浏览器里面输入 http://www.piaoyun.org/mysql.php,只要浏览器一访问这个mysql.php文件,数据就开始导入,数据导入结束后,就 会显示“导入成功”的字样。这个时间根据您要导入的数据大小决定,一般时间很短。