mysql中转储再导入_将SQL转储导入MySQL时出错:未知数据库/无法创建数据库

我很困惑如何导入SQL转储文件。 如果没有先在MySQL中创建数据库,我似乎无法导入数据库。

这是尚未创建database_name时显示的错误:

username =有权访问原始服务器上数据库的用户的用户名。

database_name =原始服务器中的数据库名称

$ mysql -u username -p -h localhost database_name < dumpfile.sql

Enter password:

ERROR 1049 (42000): Unknown database 'database_name'

如果我以root用户身份登录MySQL并创建数据库,则database_name

mysql -u root

create database database_name;

create user username;# same username as the user from the database I got the dump from.

grant all privileges on database_name.* to username@"localhost" identified by 'password';

exit mysql

然后尝试再次导入sql转储:

$ mysql -u username -p database_name < dumpfile.sql

Enter password:

ERROR 1007 (HY000) at line 21: Can't create database 'database_name'; database exists

我应该如何导入SQL转储文件?

这是MySQL的一个已知错误。

错误42996

错误40477

如您所见,自2008年以来这是一个已知问题,他们尚未解决!!!

周围的工作

您首先需要创建要导入的数据库。它不需要任何表。然后,您可以导入数据库。

首先启动您的MySQL命令行(如果需要,请应用用户名和密码)

C:\>mysql -u user -p

从转储文件导入所选数据库

C:\>mysql -u user -p -h localhost -D database -o < dumpfile.sql

您可以将IP地址或域替换为要导入到的任何MySQL服务器的localhost。

在mysql提示符下使用DROP命令的原因是要确保我们从一个空而干净的数据库开始。

我很欣赏答案。现在是2012年,看来该错误仍然存??在,因为我使用了您的答案将wordpress databae恢复到了新服务器(但是请注意,您的MySQL推荐缺少结尾;。;-)

打开sql文件,并注释掉尝试创建现有数据库的行。

@BryanWheelock我认为一个更好的(可工业化的)选项是不选择命令中的数据库,因此它变为:" mysql -u用户名-p -h本地主机只是为了详细说明一下,我的* .sql文件的第一行就包含以下内容:如果不存在,则创建数据库`database_name` / *!40100 DEFAULT CHARACTER SET latin1 * /;将其更改为(开始时请注意/ *):/ *如果不存在`database_name` / *,则创建数据库40100 DEFAULT CHARACTER SET latin1 * /;有效地注释掉该命令,IMPORT应该起作用。只要记住要在要IMPORT将表插入其中的数据库中处于活动状态,否则您可能会陷入混乱!

听起来您的数据库转储包括用于创建数据库的信息。因此,不要给MySQL命令行一个数据库名称。它将创建新数据库并切换到该数据库以进行导入。

如果在直接管理员或cpanel中创建数据库,则必须使用notepad或notepad ++编辑sql,并在第22行中将CREATE DATABASE命令更改为CREATE DATABASE IF NOT EXISTS

我使用命令行自己创建数据库。然后尝试再次导入,它可以正常工作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值