gpt4 book ai didi

mysql - 恢复 MySQL 数据库时出现“无法在系统表上创建触发器”错误

转载 作者:可可西里 更新时间:2023-11-01 06:43:39 26 4
gpt4 key购买 nike

我在 AWS 上建立了一个大型数据库几个月,但由于它开始变得昂贵而将其关闭。

现在,我的硬盘驱动器上有一个 32GB 的文件,我在关闭实例上运行的 MySQL 数据库之前导出了该文件。

我想将大约 400 万行导入笔记本电脑上的本地 MySQL。

使用 MySQL Workbench,我试图做到这一点。但首先,我在本地重新创建了完全相同的模式(只有 3 个表)。然后,使用“数据导入”选项,我选择“从独立文件导入”,并指向我的文件。我让它撕裂 - 只是为了收到这条令人沮丧的消息作为回应:

01:56:30 PM Restoring /home/monica/dumps/Dump20160406.sql
Running: mysql --defaults-file="/tmp/tmpMJpTQj/extraparams.cnf" --protocol=tcp --host=127.0.0.1 --user=root --port=3306 --default-character-set=utf8 --comments --database=my_db < "/home/monica/dumps/Dump20160406.sql"
ERROR 1465 (HY000) at line 488: Triggers can not be created on system tables
Operation failed with exitcode 1

触发器似乎有问题?首先我有点困惑,因为我的数据库从来没有任何触发器开始。

为了排除故障,我找到了 t his SO question ,我尝试了建议——我编辑了 my.conf 文件,但没有任何区别。

其他搜索让我一无所获。我真的找不到关于这个错误的任何信息。

如果有人有任何建议,那就太好了。谢谢。

编辑

我在@Solarflare 的评论中使用了一些建议并使用了这个语句:

mysql -u root -p for_import -o < /home/monica/dumps/Dump20160406.sql

实际上,我发现了一个很酷的工具,叫做 Pipe Viewer它提供了一个进度条 - 视觉证据(我希望)确实发生了一些事情。所以我将这一行重写为:

pv /home/monica/dumps/Dump20160406.sql | mysql -u root -p -o for_import

果然,一切正常,大约 5 分钟后,导入完成:

34.1GB 0:08:19 [69.9MB/秒] [================================= =>] 100%

不错! 然而:当我 show databases然后 use for_import然后show tables ,我得到:

Empty set (0.00 sec)我的心碎了。 :(

最佳答案

您可以使用参数 -o--one-database 跳过所有与您要导入的默认数据库无关的内容:

mysql -u root -p -D mydb -o < /home/monica/dumps/Dump20160406.sql

将从您的文件导入数据库 mydb 并跳过所有其他数据库,尤其是导致您遇到麻烦的系统数据库。名称 mydb 在您的文件和数据库中必须相同。

关于mysql - 恢复 MySQL 数据库时出现“无法在系统表上创建触发器”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37197793/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com