Ошибка импорта дампа 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.
Как вы видите, это известная проблема с 2008 года, и они еще не исправили ее!!!
РАБОТА Вокруг
Сначала вам нужно создать базу данных для импорта. Для этого не нужно никаких таблиц. Затем вы можете импортировать вашу базу данных.
сначала запустите командную строку 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 является уверенность, что мы начинаем с пустой и чистой базы данных.
Похоже, ваш дамп базы данных содержит информацию для создания базы данных. Так что не давайте командной строке MySQL имя базы данных. Он создаст новую базу данных и переключится на нее, чтобы выполнить импорт.
Если вы создаете базу данных в режиме прямого администратора или cpanel, вы должны отредактировать свой sql с помощью блокнота или notepad++ и изменить CREATE DATABASE
командовать CREATE DATABASE IF NOT EXISTS
в строке 22
Я сам создаю базу данных с помощью командной строки. Затем попробуйте импортировать снова, это работает.