【发布时间】: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 等不易编辑。