将SQL转储导入到MySQL时出错:未知数据库/无法创build数据库
我很困惑如何导入一个SQL转储文件。 我似乎无法导入数据库,而不是在MySQL中首先创build数据库。
这是database_name尚未创build时显示的错误: 
  username =可以访问原始服务器上的数据库的用户的username名。 
  database_name =原始服务器的数据库名称 
 $ mysql -u username -p -h localhost database_name < dumpfile.sql Enter password: ERROR 1049 (42000): Unknown database 'database_name' 
 如果我以root身份login到MySQL并创build数据库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转储文件?
打开sql文件并注释掉试图创build现有数据库的行。
这是MySQL的一个已知的错误 。
  错误42996 
  错误40477 
正如你可以看到,这是自2008年以来已知的一个问题,他们还没有修复它!
  周围工作 
 您首先需要创build要导入的数据库。 它不需要任何表格。 然后你可以导入你的数据库。 
- 
首先启动你的MySQL命令行(如果需要,可以使用用户名和密码) 
 C:\>mysql -u user -p
- 
创build你的数据库并退出 mysql> DROP DATABASE database; mysql> CREATE DATABASE database; mysql> Exit
- 
从转储文件中导入您select的数据库 
 C:\>mysql -u user -p -h localhost -D database -o < dumpfile.sql
你可以用你想要导入的任何MySQL服务器的IP或域replace本地主机。 在mysql提示符下DROP命令的原因是要确保我们从一个空的清洁数据库开始。
这听起来像你的数据库转储包括创build数据库的信息。 所以不要给MySQL命令行一个数据库名称。 它将创build新的数据库并切换到它进行导入。
 如果你使用直接admin或cpanel创build你的数据库,你必须使用notepad或notepad ++来编辑你的sql,并将CREATE DATABASE命令改成CREATE DATABASE IF NOT EXISTS in line22 
我使用命令行自己创build数据库。 然后尝试再次导入,它的工作。