Как импортировать файл .sql в MySQL?

39

Я пытаюсь импортировать файл .sql, используя MySQL Workbench, и я получаю эту ошибку:

ERROR 1046 (3D000) at line 28: No database selected

Сначала я создал пустую базу данных, которая называется с тем же именем, что и файл .sql, но она не работает. Я также попытался сделать это с клиентом команды mysql, используя:

mysqldump -u root database > file.sql 

Но это говорит об ошибке в моем синтаксисе SQL. Кроме того, я не знаю путь, где я должен установить file.sql.

RolandoMySQLDBA
источник
Мне удалось импортировать mysqldump с помощью нижеприведенного mysql> use mydatabase; mysql> source sql_file.sql;
Giridharan Venugopal

Ответы:

49

Экспорт:

mysqldump -u username –-password=your_password database_name > file.sql

Импорт:

mysql -u username –-password=your_password database_name < file.sql 
Юрген д
источник
9
Там есть не должно быть не пространство между -pиpassword
tombom
Что если у меня нет пароля?
Затем пропустите параметр пароля.
Казимерас Алиулис
Piping ( mysqldump db -uuser -ppass|mysql new_db -uuser -ppass) устраняет необходимость использования промежуточного файла.
Pacerier
2
Я думаю, что база данных должна существовать в MySQL, чтобы это работало.
Нумен
28

Вы также можете импортировать файл .sql как уже подключенный пользователь в базу данных:

mysql> use your_database_name;

mysql> source file.sql;
tdaget
источник
3
источник D: /path/file.sql; работает превосходно! помните переднюю косую черту вместо обратной косой черты.
Имдад
6

Другой способ импортировать файлы дампа, когда source <filename>он не работает, это сделать следующее:

свалка

~> mysqldump --user=<user> --password=<password> <db_name> > <export_file_name>.sql

импорт

> mysql -u <user> -p <pass> <db_name>
mysql> USE <db_name>;  (if you didn't already select)
mysql> \. ~/<export_file_name>.sql
Майк С.
источник
5

Юрген двойка ответ , конечно , правильно; однако, учитывая ваше сообщение об ошибке, вы также можете добавить в свой файл SQL в начале строки, например:

USE your_database_name;

Это также должно сделать работу и позволить вам импортировать в Workbench.

Когда вы используете mysqldump, экспортированный файл будет сохранен в текущей папке. Неважно, по какому пути это происходит. Просто при импорте из командной строки вам нужно находиться в той же папке или указать путь к файлу. Но это не тот случай, когда вы используете визуальный инструмент, такой как Workbench, где вам все равно нужно выбрать файл из дерева папок.

Сообщество
источник
2

Вы пропустили пароль в команде. Используйте следующее.

mysql --u [username] --password=[password] [database name] < [dump file]

источник
1

Для Windows в каталоге установки сервера MySQL (например C:\Program Files\MySQL\MySQL Server 5.5), в my.ini file, добавьте следующую строку [mysqld]в разделе сервера:

max_allowed_packet = 16M

И сохраните изменения. (Если вам не разрешено сохранять, затем скопируйте и вставьте на рабочий стол и снова отредактируйте, затем вставьте его в то же место.)

После этого перезапустите сервер MySQL.

user24439
источник