我有一个 28 MB 的 sql 文件需要导入到 mysql。 首先,我使用 xampp 导入,但失败了,所以我将 php.ini-development 和 php.ini-product 中的 max_file_uploads、post_size (类似的东西)更改为 40 MB,但它仍然显示“max: 2048kb”,导入再次失败。
通过研究,我学会了使用mysql.exe导入,所以我打开mysql.exe并输入下面的命令行(msdos):
-u root -p dbname < C:\xxx\xxx\sqlfile.sql
但还是一次又一次失败......
问题是什么? xampp?或者我的sql设置?
试试这个:
mysql -uroot -p --max_allowed_packet=24M dbname
登录数据库后:
source C:\xxx\xxx\sqlfile.sql
我认为你应该能够加载你的文件
您的文件有多大?您也可以从控制台执行此操作:
mysql -u##USER## -p ##YOUR_DATABASE## < ##PATH_TO_YOUR_FILE##
无需执行 mysql.ext 文件即可执行此操作:只需“cd”直接进入目录并尝试该命令。
它将询问您的密码并立即开始导入。不要忘记创建数据库或删除所有表(如果已存在)。
我总是发现这种方法比使用 php 指令、phpmyadmin 配置或外部应用程序更快、更轻松、更容易。它就在那里,内置于 mysql 核心中。
您应该增加MySQL中的max_allowed_packet。
只需在导入文件之前执行此命令:
set global max_allowed_packet=1000000000;
我也遇到了类似的问题。所以之后我也得出结论,大的sql文件永远不会被导入到mysql中。它总是会给出timeout错误。
然后我找到了解决方案。
有一个软件Heidisql。
请按照以下步骤操作:-
1) download the software.
2) then install the software
3) create new session in Heidisql and open the session
4) then go to Tools -> Load SQL File -> Browse.
就是这样。这个解决方案最适合我。
检查链接这里
我发现唯一的解决方案是从命令行登录MySQL并使用“source”命令:-
1) cd 到包含要导入的 SQL 文件的目录,然后登录 MySQL:
#> mysql -u 您的用户名 -p -h 本地主机
2)使用MySQL命令导入数据:
#> 使用 NAMEOFYOURDB;
#> 源 NAMEOFFILETOIMPORT.sql
这还会向您的终端反馈有关进度的信息,这令人放心。
转到xamp中的php.ini文件,单击apach中的配置。然后在文本文件中键入这些命令。您可以根据数据库的文件大小改变这些值
post_max_size = 900M
memory_limit = 1024M
max_execution_time = 6000
max_input_time = 6000