导入 .sql 文件时出现错误 3554

Bai*_*lon 6 mysql mysql-workbench

第 318 行的错误 3554 (HY000):拒绝访问系统表“mysql.innodb_index_stats”。

Operation failed with exitcode 1 11:27:20 Import of C:\Users\VELOXSHOP\Downloads\dumpfilename.sql has completed with 1 errors

我如何允许访问该表?

小智 14

您还可以使用 --force 选项来规避此错误,该选项会导致 mysql 客户端在出现错误的情况下继续运行。

  • 这可能是最好的,因为我的旧数据库已损坏并且无法访问 - 这就是我要恢复备份的原因。 (3认同)

小智 8

尝试将 -f 添加到您的命令中,如下所示:

mysql -u root -p -f < dump.sql
Run Code Online (Sandbox Code Playgroud)

-f 表示--force。

这对我有用!

  • 普拉兹林不也是这么说的吗? (2认同)

Ped*_*res 7

您需要对旧数据库进行新的转储/备份,这次从目标中删除那些 innodb 表。您可以通过在命令行上使用 --ignore-table 参数来执行此操作:

mysqldump -u root -p --all-databases --ignore-table=mysql.innodb_index_stats --ignore-table=mysql.innodb_table_stats > dump.sql
Run Code Online (Sandbox Code Playgroud)

然后,您应该能够使用以下命令在新数据库上恢复备份:

mysql -u root -p < dump.sql
Run Code Online (Sandbox Code Playgroud)


小智 0

这是一个 MySQL 系统表,您不太可能直接向其中插入记录。当超过阈值时,MySQL 应该在计算索引的新统计信息时更新表。

检查第 318 行并找出它尝试插入该表的原因。