Ошибка импорта 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 [email protected]"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 файл dump?

Ответ 1

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

Ответ 2

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

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

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

WORK AROUND
Сначала вам нужно создать базу данных для импорта. Он не нуждается в каких-либо таблицах. Затем вы можете импортировать свою базу данных.

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

  • Создайте свою базу данных и выйдите из нее

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

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

Ответ 3

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

Ответ 4

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

Ответ 5

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