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