我需要导入大小约为120M的数据库(sql文件),但在phpmyAdmin中,不允许导入超过8 MB的数据库。
如何解决这个问题?
答案 0 :(得分:6)
IIRC在PHPMyAdmin中没有限制也没有在MySQL中 - 限制在POST大小(webserver配置)或文件上载大小(php.ini)。如果你不能改变其中任何一个,那么你需要通过其他方式上传文件....
mysql -u username -p <mysql_export_file.sql
如果你无法上传文件/没有shell访问/没有mysql客户端avaialable的CLI版本,那么接下来要尝试的是看你是否可以使用mysql CLI客户端远程连接:
mysql -u username -h www.example.com -p
如果此连接正常,则退出并再次运行导管文件
mysql -u username -h www.example.com -p <mysql_export_file.sql
如果这不起作用,那么您需要将导出文件拆分为多个较小的块,或者编写自己的数据加载器来处理数据。
下进行。
答案 1 :(得分:2)
我过去已经用三种方式解决了这个问题,这里的解决方案是为了简单:
1)提高上传限制。请求您的主机允许您将较大的文件上传到服务器(特别是post_max_size和upload_max_filesize变量),可能最好是他们在phpMyAdmin的.htaccess文件中执行此操作
2)通过FTP上传。 PHPMyAdmin支持通过FTP上传SQL文件,但主机需要configure the "UploadDir" setting。
3)使用其他导入流程。 BigDump是最好的。问题是它仍然拒绝导入一些文件,因为SQL行数或其他错误,而且你必须为每个站点/数据库配置它。
答案 2 :(得分:1)
我无法直接访问服务器,因此成功使用了BigDump。您通过FTP与大SQL文件一起上传它。然后BigDump导入服务器上的本地文件,避免任何HTTP / PHP上传限制。
答案 3 :(得分:0)
如果您确定导入是干净的并且没有任何重复,那么您可以尝试以下操作,这会大大减少时间。
mysql> set autocommit=0; set unique_checks=0; set foreign_key_checks=0;
mysql> source /path/to/dump.sql
mysql> commit; set unique_checks=1; set foreign_key_checks=1;