Ошибка импорта дампа SQL в MySQL: неизвестная база данных / не удается создать базу данных - PullRequest
83 голосов
/ 13 мая 2009

Я запутался, как импортировать файл дампа 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' 

Если я войду в MySQL от имени root и создаю базу данных, 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?

Ответы [ 5 ]

49 голосов
/ 14 июня 2010

Это известная ошибка в MySQL.

ошибка 42996
ошибка 40477

Как вы видите, это известная проблема с 2008 года, и они еще не исправили ее !!!

РАБОТА Вокруг
Сначала вам нужно создать базу данных для импорта. Для этого не нужны никакие таблицы. Затем вы можете импортировать вашу базу данных.

  1. сначала запустите командную строку MySQL (при необходимости введите имя пользователя и пароль)
    C:\>mysql -u user -p

  2. Создайте базу данных и выйдите из системы

    mysql> DROP DATABASE database;  
    mysql> CREATE DATABASE database;  
    mysql> Exit  
    
  3. Импорт выбранной базы данных из файла дампа
    C:\>mysql -u user -p -h localhost -D database -o < dumpfile.sql

Вы можете заменить localhost на IP или домен для любого сервера MySQL, на который вы хотите импортировать. Причиной использования команды DROP в приглашении mysql является необходимость начать с пустой и чистой базы данных.

38 голосов
/ 13 мая 2009

Откройте файл sql и закомментируйте строку, которая пытается создать существующую базу данных.

12 голосов
/ 13 мая 2009

Похоже, ваш дамп базы данных содержит информацию для создания базы данных. Так что не давайте командной строке MySQL имя базы данных. Он создаст новую базу данных и переключится на нее, чтобы выполнить импорт.

4 голосов
/ 30 марта 2013

Если вы создаете базу данных в режиме прямого администратора или cpanel, вы должны отредактировать свой sql с помощью блокнота или notepad ++ и изменить команду CREATE DATABASE на CREATE DATABASE IF NOT EXISTS в строке 22 * ​​1003 *

0 голосов
/ 12 апреля 2017

Я сам создаю базу данных с помощью командной строки. Затем попробуйте импортировать снова, это работает.

...