恢复数据库转储时出现information_schema错误

时间:2013-03-09 01:28:51

标签: mysql phpmyadmin

像往常一样,我使用PMA完成了全部导出。现在,当我尝试导入转储数据时,我收到此错误:

  

#1044 - 用户'root'@'localhost'拒绝访问数据库'information_schema'

发生了什么事?

2 个答案:

答案 0 :(得分:2)

确保您的转储不包含CREATE DATABASE information_schema,而Information_Schema不是您应该创建的。可能会或可能不会帮助你!

答案 1 :(得分:1)

information_schema数据库中的每个表都是一个TEMPORARY MEMORY TABLE

例如,请注意information_schema.tables

mysql> show create table information_schema.tables\G
*************************** 1. row ***************************
       Table: TABLES
Create Table: CREATE TEMPORARY TABLE `TABLES` (
  `TABLE_CATALOG` varchar(512) NOT NULL DEFAULT '',
  `TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '',
  `TABLE_NAME` varchar(64) NOT NULL DEFAULT '',
  `TABLE_TYPE` varchar(64) NOT NULL DEFAULT '',
  `ENGINE` varchar(64) DEFAULT NULL,
  `VERSION` bigint(21) unsigned DEFAULT NULL,
  `ROW_FORMAT` varchar(10) DEFAULT NULL,
  `TABLE_ROWS` bigint(21) unsigned DEFAULT NULL,
  `AVG_ROW_LENGTH` bigint(21) unsigned DEFAULT NULL,
  `DATA_LENGTH` bigint(21) unsigned DEFAULT NULL,
  `MAX_DATA_LENGTH` bigint(21) unsigned DEFAULT NULL,
  `INDEX_LENGTH` bigint(21) unsigned DEFAULT NULL,
  `DATA_FREE` bigint(21) unsigned DEFAULT NULL,
  `AUTO_INCREMENT` bigint(21) unsigned DEFAULT NULL,
  `CREATE_TIME` datetime DEFAULT NULL,
  `UPDATE_TIME` datetime DEFAULT NULL,
  `CHECK_TIME` datetime DEFAULT NULL,
  `TABLE_COLLATION` varchar(32) DEFAULT NULL,
  `CHECKSUM` bigint(21) unsigned DEFAULT NULL,
  `CREATE_OPTIONS` varchar(255) DEFAULT NULL,
  `TABLE_COMMENT` varchar(2048) NOT NULL DEFAULT ''
) ENGINE=MEMORY DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql>

另外,请注意,无论何时使用--all-databases运行mysqldump,information_schema都不要显示。

information_schema数据库的唯一目的是存储数据库中物理文件的元数据和表的逻辑描述。每当您运行service mysql start时,mysqld将创建所有information_schema表。然后,mysqld使用有关物理文件的信息填充这些临时内存表。

在重新加载数据库方面,请让mysqld处理information_schema数据库。有关MySQL information_schema的信息,请参阅my DBA StackExchange post from June 15, 2011