现有的MySQL数据库无法导入到本地主机

12

当我尝试将现有数据库导入本地主机时,出现了这个错误。该数据库可以导入到Web主机服务器中,但无法导入到本地主机。

错误信息如下:

静态分析:

分析过程中发现2个错误。

Ending quote ' was expected. (near "" at position 28310)
4 values were expected, but found 3. (near "(" at position 28266)

1
你应该检查文件是否被截断了。看起来文件可能比预期提前结束了。 - Nick
谢谢Nick,我用记事本打开了文件,一切都在那里。页面下面有一个注释,但是在所提到的行号中找不到“appkey”。它在记事本中的另一行,但不确定该怎么处理。MySQL说:文档#1064 -您的SQL语法存在错误;请检查与您的MariaDB服务器版本相对应的手册,以获取在第148行使用正确语法的方法。 - Zaqir Hossan
3个回答

16

PhpMyAdmin有点傻,因为它不能导入它自己导出的内容。它将单引号转义为''而不是\',然后无法处理像这样的字符串:

''I can''t do this anymore!''

您可以选择以下方式之一:
  • replace ''\', or
  • import via mysql.exe:

    mysql -uuser -ppass dbName < file.sql
    

1
我刚刚花了半个小时试图通过phpmyadmin导入一个.sql转储文件,但一直失败等等 - 用控制台只花了5分钟,包括我添加mysql到Windows路径变量的时间... - PeterTheLobster
在我的情况下,包含撇号(例如client's)的WordPress评论被转义为\',这破坏了导入到本地phpMyAdmin数据库的语法。简而言之,将\'替换为\" - jaegs

1
这可能是因为您导出的数据库大小太大了。对我而言,解决方案是:
从“导出方式”中选择:
自定义-显示所有可能的选项
格式:SQL
输出:
压缩 - 选择压缩选项
将数据库导出为zip文件,(例如:database_name.sql.zip)在本地导入,如果它因为时间过长而抛出错误,则可以通过按“继续”并重新提交来恢复导入,并再次选择相同的数据库,然后它会从之前停止的地方继续。
我附上了这些设置的图片:

enter image description here


1
打开任何编辑器(如notepad ++)中的.sql脚本文件,然后
您需要将“''”替换为“'”(适用于新版本的phpmyadmin)

您需要将“'”替换为“''”(适用于旧版本的phpmyadmin)
当您将其从sql文件的所有内容中替换时,它将对您起作用。

ref:https://stackoverflow.com/a/41376791/2298211


你能具体说明一下“旧版”和“新版”是什么吗? - Marcelo Agimóvel
说实话,我是在论坛上搜索的,没有提到版本,所以我一个一个尝试了两种方法,幸运的是其中一种对我起作用了。 - Hassan Saeed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接