Reputation: 311
ERROR 3554 (HY000) at line 318: Access to system table 'mysql.innodb_index_stats' is rejected.
Operation failed with exitcode 1 11:27:20 Import of C:\Users\VELOXSHOP\Downloads\dumpfilename.sql has finished with 1 errors
How do I allow acess to that table?
Upvotes: 20
Views: 21245
Reputation: 882
I had this issue when I made an export (mysqldump) using MySQL 5.7 and then accidentally tried to import it to MySQL 8.0. The correct sequence of events was to import the data into a MySQL 5.7 instance and then upgrade it to 8.0.
Upvotes: 0
Reputation: 1492
Try to add -f to your command like so:
mysql -u root -p -f < dump.sql
-f means --force.
This did the trick for me!
Upvotes: 8
Reputation: 221
You can also circumvent this error using the --force option which causes mysql client to continue despite errors.
Upvotes: 16
Reputation: 529
You'll need to make a new dump/backup of your old database, this time remove those innodb tables from your target. You can do this by using --ignore-table parameter on the command line:
mysqldump -u root -p --all-databases --ignore-table=mysql.innodb_index_stats --ignore-table=mysql.innodb_table_stats > dump.sql
Then you should be able to restore your backup on the new database using the command below:
mysql -u root -p < dump.sql
Upvotes: 22
Reputation: 6488
It seems to be restricted in Mysql 8. Remove the insert statement from the sql file. You may have to use sed if the file is very large
https://stackoverflow.com/a/26379517/1106420
https://bugs.mysql.com/bug.php?id=92675
Upvotes: 2
Reputation: 733
That is a MySQL system table and it's unlikely that you should be inserting records into it directly. MySQL should update the table when it calculates new statistics for indexes when thresholds pass.
Inspect line 318 and figure out why it's trying to insert into that table.
Upvotes: 0