如何使用备份恢复 information_schema 数据库

Posted

技术标签:

【中文标题】如何使用备份恢复 information_schema 数据库【英文标题】:How to restore the information_schema database with a backup 【发布时间】:2012-06-14 03:18:20 【问题描述】:

我从家里的 WAMP 服务器 mysql 数据库中有一个备份,我需要在我的工作 WAMP 设置中安装它。

我目前无权访问我的原始数据库,因此不能只导出特定的表。

这里是 phpmyadmin 消息:

SQL query:

--
-- Database: `information_schema`
--
CREATE DATABASE  `information_schema` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;


MySQL said: 

#1044 - Access denied for user 'root'@'localhost' to database 'information_schema' 

information_schema 数据库似乎被锁定,并且在 phpmyadmin 中恢复失败。在 MYSQL Workbench 中,它忽略“访问被拒绝”消息继续备份,但中途崩溃。

我曾尝试删除 sql 文件中的 database_schema 行,但它看起来像一堆乱七八糟的文本,不知道如何删除它。

另一件事是我真的需要它吗?或者我可以删除它。我不太确定那里存储了哪些信息。

谢谢。

【问题讨论】:

可能是您的备份文件太大导致工作台崩溃? 我认为不会。只有少量测试信息,.sql文件750kb。 【参考方案1】:

在@GeoPhoenix 的帮助下,我自己设法做到了。

我在 Dreamweaver 中打开了 sql 文件,然后发现“-- -- 数据库:" 使用 ctrl-F 删除所有信息直到下一个"-- -- Database:" 部分并重复该过程,直到留下我需要保留的信息。

感谢大家的帮助。

【讨论】:

【参考方案2】:

MySQLINFORMATION_SCHEMA 数据库是系统数据库:

INFORMATION_SCHEMA 提供对数据库元数据、信息的访问 有关 MySQL 服务器的信息,例如数据库或表的名称, 列的数据类型或访问权限。其他条款 有时用于此信息的是数据字典和系统 目录。

在创建或修改数据库和表时被 MySQL 修改。 无法修改 INFORMATION_SCHEMA 数据库:

虽然您可以选择 INFORMATION_SCHEMA 作为默认数据库 使用 USE 语句,只能读取表的内容,不能读取 对它们执行 INSERT、UPDATE 或 DELETE 操作。

正常的 MySQL 导出实用程序在导出数据库时会忽略系统表,您根本不应该导入此数据库。只需导入“用户”数据库; MySQL 将自行构建/更新系统数据库。

【讨论】:

我会,但我目前无法访问我的原始数据库。我需要知道如何从 .sql 文件中删除 information_schemas 或以其他方式省略它们。 去掉CREATE DATABASE ..的行 您不应该直接在该表中写入任何内容。请参阅编辑后的答案。 我知道我不需要。从 MYSQL 工作台导出时,我不小心选择了所有表。不过谢谢你的信息。 对于没有这个特殊“文件编辑”问题的所有其他人来说,这是更好的答案。

以上是关于如何使用备份恢复 information_schema 数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何Oracle 数据库备份与恢复

备份文件如何恢复系统

Confluence 6 如何备份和恢复

Confluence 6 如何备份和恢复

MySQL全备份如何只恢复一个库或者一个表

Oracle 10g sheduler Job如何备份和恢复