【发布时间】:2019-04-05 19:56:15
【问题描述】:
ERROR 3554 (HY000) at line 318: 访问系统表 'mysql.innodb_index_stats' 被拒绝。
操作失败,退出代码为 1 11:27:20 C:\Users\VELOXSHOP\Downloads\dumpfilename.sql 导入完成,出现 1 个错误
如何允许访问该表?
【问题讨论】:
标签: mysql mysql-workbench
ERROR 3554 (HY000) at line 318: 访问系统表 'mysql.innodb_index_stats' 被拒绝。
操作失败,退出代码为 1 11:27:20 C:\Users\VELOXSHOP\Downloads\dumpfilename.sql 导入完成,出现 1 个错误
如何允许访问该表?
【问题讨论】:
标签: mysql mysql-workbench
您需要对旧数据库进行新的转储/备份,这次从目标中删除那些 innodb 表。您可以通过在命令行上使用 --ignore-table 参数来做到这一点:
mysqldump -u root -p --all-databases --ignore-table=mysql.innodb_index_stats --ignore-table=mysql.innodb_table_stats > dump.sql
然后您应该能够使用以下命令在新数据库上恢复备份:
mysql -u root -p < dump.sql
【讨论】:
您也可以使用 --force 选项规避此错误,该选项会导致 mysql 客户端在出现错误时继续运行。
【讨论】:
尝试像这样将 -f 添加到您的命令中:
mysql -u root -p -f < dump.sql
-f 表示--force。
这对我有用!
【讨论】:
在Mysql 8中好像有限制,把sql文件中的insert语句去掉。如果文件非常大,您可能必须使用 sed
【讨论】:
这是一个 MySQL 系统表,您不太可能直接向其中插入记录。当阈值通过时,MySQL 应在计算索引的新统计信息时更新表。
检查第 318 行并找出它为什么试图插入到该表中。
【讨论】: