将SQL转储导入MySQL时出错:未知数据库/Can';不要创建数据库
我不知道如何导入SQL转储文件。如果不先在MySQL中创建数据库,我似乎无法导入数据库 这是尚未创建将SQL转储导入MySQL时出错:未知数据库/Can';不要创建数据库,mysql,sql,mysqldump,mysql-error-1049,mysql-error-1007,Mysql,Sql,Mysqldump,Mysql Error 1049,Mysql Error 1007,我不知道如何导入SQL转储文件。如果不先在MySQL中创建数据库,我似乎无法导入数据库 这是尚未创建数据库\u name时显示的错误: username=可以访问原始服务器上数据库的用户的用户名。 数据库\u name=原始服务器中的数据库名称 $mysql-u username-p-h localhost数据库\u name
数据库\u name
时显示的错误:
username
=可以访问原始服务器上数据库的用户的用户名。数据库\u name
=原始服务器中的数据库名称
$mysql-u username-p-h localhost数据库\u name
如果我以root用户身份登录MySQL并创建数据库,database\u 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
$mysql-u username-p database\u name
如何导入SQL转储文件?打开SQL文件并注释掉试图创建现有数据库的行。听起来数据库转储包含创建数据库的信息。所以不要给MySQL命令行一个数据库名称。它将创建新数据库并切换到该数据库进行导入。这是MySQL的一个已知错误
正如你所看到的,这是自2008年以来的一个已知问题,他们还没有解决它 解决问题
首先需要创建要导入的数据库。它不需要任何桌子。然后可以导入数据库
C:\>mysql-u user-p
mysql> DROP DATABASE database;
mysql> CREATE DATABASE database;
mysql> Exit
C:\>mysql-u user-p-h localhost-D数据库-o
mysql提示符中使用DROP命令的原因是为了确保我们从一个空的干净数据库开始。如果您在direct admin或cpanel中创建数据库,您必须使用记事本或记事本++编辑sql,并将第22行中的
创建数据库
命令更改为创建数据库(如果不存在)。我使用命令行自己创建数据库。然后再次尝试导入,它会起作用。我感谢您的回答。现在是2012年,漏洞似乎仍然存在,因为我使用您的答案将我的wordpress数据库恢复到新服务器(注意,您的MySQL数据库缺少结尾“;”。;-)@BryanWheelock我认为更好的(可工业化的)选项是不在您的命令中选择数据库,因此它变成:“mysql-u username-p-h localhost