it-swarm.com.ru

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

83
BryanWheelock

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

37
Bjorn Tipling

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

49
Max Kielland

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

11
Paul Tomblin

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

4
MaysaM

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

0
wmlhust