Ошибка импорта дампа 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' 

Если я войду в 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 ответов

Решение

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

Это известная ошибка в 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 является уверенность, что мы начинаем с пустой и чистой базы данных.

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

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

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

Другие вопросы по тегам