0

最初我使用的是easyPHP(windows),然后我切换到mac并使用了MAMP。我每隔一段时间存档我的数据库,就在我重新格式化之前。导出是通过进入 phpMyAdmin 的根目录并使用导出功能进行的。现在我正在尝试导入数据,但出现此错误“#1044 - 用户'root'@'localhost' 拒绝访问数据库'information_schema'”。在做其他事情时,我遇到了错误,例如“#1146 - 表 'test_db.COLLATION_CHARACTER_SET_APPLICABILITY' 不存在”、“#1146 - 表 'test_db.CHARACTER_SETS' 不存在”和“#1146 - 表 'test_db.COLUMNS' 不存在“不存在”和“#1046 - 未选择数据库”

如何让 MAMP 导入并忽略任何访问错误并继续,以便我的数据库填充到以前的状态?我宁愿不编写应用程序来执行此操作,但如果我必须使用哪些库来解析 sql 转储中的 sql 语句?它看起来并不难解​​析。它看起来像一个分号分隔语句。但是逃逸和逃逸问题呢?我该如何处理?

4

1 回答 1

2

第一个错误表明您的设置有问题。information_schema 是一个内部数据库,用于保存有关系统其他部分的数据(元数据)。您应该尝试重新安装 MySQL 服务器(甚至整个 MAMP)。

其次:可以使用 mysql 命令行客户端导入转储文件,如下所示:

mysql -p -u root test_db < dump.sql

要记住的一件事是,在恢复转储之前需要创建“test_db” 。另一个可能的问题可能是转储/恢复是由不同版本的 MySQL(即 5.0 与 5.1)完成的。为此,您可以尝试在 mysql 命令行中使用 --force 命令跳过失败的执行,但请注意,这可能无法正确恢复您的数据。

于 2009-02-14T11:28:42.940 回答