导出数据库 受限于 PHP 中 max_input_vars 值的配置 |
作者: 时间:2023-05-19 |
描述:当前表单包含的字段多于 1000,受限于 PHP 中 max_input_vars 值的配置,该次提交有可能忽略其中一部分。 |
导出数据库的时候跳出来警告提示框:当前表单包含的字段多于 1000,受限于 PHP 中 max_input_vars 值的配置,该次提交有可能忽略其中一部分。
建议最好是把这个的问题反馈给服务器提供商由他们来处理,因为有时候你自己修改后无效果,没有权限。
文章一
数据库到了后期会越来越大,当达到一定大小phpmyadmin 导出数据库就会报“phpmyadmin 表单包含的字段多于 1000,受限于 PHP 中 max_input_vars 值的配置”的错误。但是数据库要备份怎么办呢?
方法一:修改php配置
修改php.in配置如下:
max_execution_time = 300 ; Maximum execution time of each script, in seconds
max_input_time = 300 ; Maximum amount of time each script may spend parsing request data
max_input_vars = 5000
你的服务器如果开启了php缓存的话可能单纯的只是重启php是不会马上看到效果的。
方法二:mysql命令行备份导出
1、首先你得有管理员权限
2、我们先给phpmyadmin做一些优化改动方便日后网站运维(当然你也可以无视跳过此步骤)
到phpMyAdmin 的安装目录下找到config.sample.inc.php 文件,执行命令
cp config.sample.inc.php config.inc.php
vi config.inc.php
复制并改名为 config.inc.php 并打开编辑,(如果已经有了就直接编辑即可)
找到$cfg['UploadDir'] = '';和$cfg['SaveDir'] = '';
把他们改成$cfg['UploadDir'] = 'upload';和$cfg['SaveDir'] = 'save';保存退出
然后在phpMyAdmin 的目录下执行命令:
mkdir upload
mkdir save
创建两个空目录,upload 和 save
然后回到phpMyadmin刷新下你会看到
phpmyadmin 导出数据库警告:表单包含的字段多于 1000,受限于 PHP 中 max_input_vars 值的配置
这样导出的数据库文件会自动保存在save文件夹下,导入数据库文件我们也只需要把文件放到Upload文件夹下即可,这样就避免了因文件太大而失败,剩下的就是把ftp指向这里方便上传和下载了。
3、导出数据库,执行命令并输入数据库管理员密码:
mysqldump -u root -p yourDataBaseName > /www/server/phpmyadmin/phpmyadmin_59efd4718c6626ff/save/1.sql
phpmyadmin 导出数据库警告:表单包含的字段多于 1000,受限于 PHP 中 max_input_vars 值的配置
完成后save文件夹下会有导出的数据库文件
执行命令:zip -r 1.sql.zip 1.sql ,然后你就可以用ftp到save下面下载导出的数据库备份了。
最后来验证一下
执行命令:
mv /www/server/phpmyadmin/phpmyadmin_59efd4718c6626ff/save/1.sql.zip /www/server/phpmyadmin/phpmyadmin_59efd4718c6626ff/upload
把save下面的数据库文件移动到upload下面
进入phpMyadmin新建一个数据库,导入
phpmyadmin 导出数据库警告:表单包含的字段多于 1000,受限于 PHP 中 max_input_vars 值的配置
如果导入失败则用sql命令行导入导出数据库这个是最靠谱的: 导入数据库 进入mysql数据库控制台, mysql -u root -p
CREATE DATABASE `数据库名` DEFAULT CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI; mysql>use 数据库名 然后使用source命令,后面参数为脚本文件(如这里用到的.sql) mysql>source d:/dbname.sql
导出数据库
无需进入控制台,直接命令行:键入数据库密码即可
mysqldump -u root -p dbName > /www/wwwroot/oliviaso/FileName.sql
无任何异常,收工。
文章二
PHP最大表单提交限制“max_input_vars上限1000”解决方法
今天我在用phpMyAdmin备份导出SQL的时候,结果提示:
警告:当前表单包含的字段多于1000,受限于PHP中max_input_vars值的配置,该次提交有可能忽略其中一部分。
原因:由于我一个数据库里面的表大约有300张的样子,所有的字段加起来肯定超过了1000。不可能平均一张表还没有4个字段吧!这毕竟是正式项目,又不是测试着玩的。
1、max_input_vars 表示的是:可以接受多少个 GET/POST/COOKIE 输入变量。
2、php.ini配置中 max_input_vars 默认值是1000。如果此配置被屏蔽掉,也代表默认1000。
3、如非必要,尽量不要将max_input_vars值变大,这种改大限制的方式也是治标不治本。
第一种方法:
将 php.ini 中 max_input_vars 值变大。例如:
max_input_vars = 5000 第二种方法:
将那些重复的提交信息组,提交前变成一个字段去提交。变成一个字段的方法例如:将信息组变成json或序列化成字符串。
最后,再给大家说说我是如何解决这个问题的?我的解决方法也很粗爆,由于表很多,我直将 max_input_vars 设置为 10000 ;重启PHP让配置生效。
再去用phpMyAdmin备份导出SQL。
备份导出SQL成功后,最后再回去 将 max_input_vars = 10000 改为 1000 再屏蔽掉它。再重启PHP让配置生效。 从手机浏览器访问《生活宝典》 |
|