【问题标题】:Import Full MySQL Dump导入完整的 MySQL 转储
【发布时间】:2012-06-21 00:36:28
【问题描述】:

我已使用 HeidiSQL 7 导出数据库的完整备份。

现在,当通过 PHPMyAdmin 导入它时,我注意到我必须选择数据库 information_schema,因为这就是导出数据库的方式(或者这就是 HeidiSQL 7 将数据库作为对象导出到 SQL 文件的方式?)。

但是,这是一个问题,因为当我使用 HeidiSQL 7(而不是 PHPMyAdmin)导入(导出的文件)时,在选择 information_schema 数据库并单击导入 SQL 文件(从工具菜单中)时,它说拒绝 root 用户的访问。

在 PHPMyAdmin 中,选择数据库 information_schema 时,导入选项不可用。

如何导入完整的数据库转储? (我是这样导出的:HeidiSQL > export database objects to SQL file)

编辑: 我用命令行尝试过,但没有运气:

C:\Programs\XAMPP\mysql\bin>mysql --verbose --user=root Information_schema < DT.
sql
--------------
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */
--------------

--------------
/*!40101 SET NAMES utf8 */
--------------

--------------
/*!40014 SET FOREIGN_KEY_CHECKS=0 */
--------------

--------------
/*!40000 ALTER TABLE `CHARACTER_SETS` DISABLE KEYS */
--------------

ERROR 1044 (42000) at line 13: Access denied for user 'root'@'localhost' to data
base 'information_schema'

C:\Programs\XAMPP\mysql\bin>

这是 SQL 文件的 sn-p: http://pastebin.com/6hwhK2CJ

注意:我的 root 用户的密码是空白的。

也许我的问题的另一种解决方案: 如何从 SQL 文件中只导入我想要的数据库?例如名称为“Employees”的数据库?因为那个 SQL 文件应该包含一些数据库。

编辑2: (回答第一条评论) 我下载了 MySQL Workbench,设置连接...

03:23:08 Restoring C:\Files\DB.sql

Running: mysql.exe --defaults-extra-file="c:\files\temp\tmplnjwd6.cnf"  --host=localhost --user=root --port=3306 --default-character-set=utf8 --comments < "C:\\Files\\DB.sql"

ERROR 1046 (3D000) at line 13: No database selected


Operation failed with exitcode 1

03:23:08 Import of C:\Files\DB.sql has finished with 1 errors

【问题讨论】:

  • 安装 MySQL 工作台。那时所有的转储和进口都没有道理。如果该表中所有 root 实例的 root 密码为空,还要检查 mysql.user 表
  • 尝试在转储文件的开头添加 USE 语句。
  • 关于 Information_schema 的第一个错误 - 您无法修改此数据库,因为它是系统且只读的。
  • 您只需从转储中删除所有“information_schema”查询,然后重试。我很好奇你为什么使用完整转储而不是简单的数据库转储?
  • 我看到 information_schema 包含一些关于其他数据库的信息,其他数据库会不会受到影响? :o 是否有任何工具可以做到这一点(如果有,请告诉操作方法)? SQL 文件为 9 mb,使用 NotePad Pro 等不易编辑。

标签: mysql sql import


【解决方案1】:

INFORMATION_SCHEMA 是一个伪只读数据库(实际上是一个“ANSI standard set of read-only views”)。

你需要删除所有与这个伪数据库相关的转储数据,因为绝对没有办法导入它。

Notepad++ 能够轻松处理 9 MB 的文件,并且还提供了很好的语法高亮显示。

【讨论】:

  • 所以我还是需要手动编辑sql文件? :( 顺便说一句,NoteTab pro 加载文件并不是很慢。它可以快速加载甚至 2 GB 大的文件。
  • @Gam Erix 您是否将所有数据库中的所有表转储到一个文件中?如果是,请搜索 USE 关键字。你有没有找到像USE db_name 这样的行?
  • 嗯,我手动编辑了它,这很痛苦,但它终于奏效了。谢谢。
猜你喜欢
  • 2020-06-07
  • 2017-09-27
  • 2018-05-22
  • 2018-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-20
  • 2012-03-02
相关资源
最近更新 更多