Как импортировать файл SQL с помощью командной строки в MySQL?

У меня есть файл .sql с экспортом из phpMyAdmin. Я хочу импортировать его на другой сервер, используя командную строку.

У меня есть установка Windows Server 2008 R2. Я поместил файл .sql на диск C, и я пробовал эту команду

database_name < file.sql

Он не работает. Я получаю синтаксические ошибки.

  • Как я могу импортировать этот файл без проблем?
  • Нужно ли сначала создавать базу данных?
1044
задан Jaylen 16 июля '13 в 3:43
источник поделиться

31 ответ

  • 1
  • 2

Try:

mysql -u username -p database_name < file.sql

Проверьте Параметры MySQL.

Примечание. Лучше всего использовать полный путь к файлу SQL file.sql.

2073
ответ дан bansi 16 июля '13 в 3:48
источник поделиться

Общее использование mysqldump заключается в создании резервной копии всей базы данных:

shell> mysqldump db_name > backup-file.sql

Вы можете загрузить файл дампа на сервер следующим образом:

UNIX

shell> mysql db_name < backup-file.sql

То же самое в командной строке Windows:

mysql -p -u[user] [database] < backup-file.sql

PowerShell

C:\> cmd.exe /c "mysql -u root -p db_name < backup-file.sql"

Командная строка MySQL

mysql> use db_name;
mysql> source backup-file.sql;
418
ответ дан vladkras 16 июля '13 в 3:48
источник поделиться

Относительно времени, затрачиваемого на импорт огромных файлов: самое главное, это занимает больше времени, поскольку по умолчанию MySQL имеет значение autocommit = true. Вы должны установить это, прежде чем импортировать свой файл, а затем проверить, как импорт работает как драгоценный камень.

Вам просто нужно сделать следующее:

mysql> use db_name;

mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;
175
ответ дан Paresh Behede 04 апр. '14 в 9:47
источник поделиться
  • Откройте командную строку MySQL
  • Введите путь к вашему директорию bin mysql и нажмите Enter
  • Вставьте ваш файл SQL в папку bin сервера mysql.
  • Создать базу данных в MySQL.
  • Используйте эту конкретную базу данных, где вы хотите импортировать файл SQL.
  • Введите source databasefilename.sql и Enter
  • Успешно загружается ваш файл SQL.
40
ответ дан user4412947 02 янв. '15 в 18:58
источник поделиться

Мы можем использовать эту команду для импорта SQL из командной строки:

mysql -u username -p password db_name < file.sql

Например, если имя пользователя root, а пароль - password. И у вас есть имя базы данных как bank, а файл SQL - bank.sql. Затем просто выполните следующие действия:

mysql -u root -p password bank < bank.sql

Помните, где находится ваш файл SQL. Если ваш файл SQL находится в директории Desktop/directory, затем зайдите в каталог рабочего стола и введите команду следующим образом:

~ ? cd Desktop
~/Desktop ? mysql -u root -p password bank < bank.sql

И если они находятся в каталоге Project, а ваш файл SQL находится в каталоге Desktop. Если вы хотите получить к нему доступ из каталога Project, вы можете сделать это следующим образом:

~/Project ? mysql -u root -p password bank < ~/Desktop/bank.sql
37
ответ дан Amrit Dhungana 11 марта '14 в 14:26
источник поделиться

Среди всех ответов, для проблемы выше, это лучший вариант:

 mysql> use db_name;
 mysql> source file_name.sql;
37
ответ дан Manoj Kumar 18 авг. '16 в 15:12
источник поделиться

Решение, которое сработало для меня, ниже:

Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;
25
ответ дан Shiks 24 авг. '16 в 9:02
источник поделиться

Перейдите в каталог, в котором имеется исполняемый файл MySQL. -u для имени пользователя и -p для запроса пароля:

C:\xampp\mysql\bin>mysql -u username -ppassword databasename < C:\file.sql
21
ответ дан Tanmay Patel 08 сент. '14 в 15:17
источник поделиться

Если у вас уже есть база данных, используйте для импорта файл dump или sql

mysql -u username -p database_name < file.sql

если вам не нужно создавать соответствующую базу данных (пустую) в MySQL, для этого сначала войдите в консоль MySQL, выполнив следующую команду в терминале или в cmd

mysql -u userName -p;

и при появлении запроса укажите пароль.

Затем создайте базу данных и используйте ее

mysql>create database yourDatabaseName;
mysql>use yourDatabaseName;

Затем импортируйте файл sql или dump в базу данных из

mysql> source pathToYourSQLFile;

Примечание. Если ваш терминал не находится в месте, где существует файл dump или sql, используйте относительный путь выше.

18
ответ дан Kasun Siyambalapitiya 01 сент. '17 в 13:21
источник поделиться

Чтобы выгрузить базу данных в файл SQL, используйте следующую команду

mysqldump -u username -p database_name > database_name.sql

Чтобы импортировать файл SQL в базу данных (убедитесь, что вы находитесь в том же каталоге, что и файл SQL, или укажите полный путь к файлу)

mysql u -username -p database_name < database_name.sql
17
ответ дан Adeleke Akinade 04 янв. '17 в 20:42
источник поделиться

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

mysql -u username -p password dbname < dump.sql

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

mysql -u username -p password < dump.sql
15
ответ дан Leopathu 25 мая '15 в 8:14
источник поделиться

Я думаю, стоит упомянуть, что вы можете загрузить файл gzipped (сжатый) с помощью zcat, как показано ниже:

zcat database_file.sql.gz | mysql -u username -p -h localhost database_name
13
ответ дан Francesco Casula 24 авг. '16 в 16:45
источник поделиться
mysql --user=[user] --password=[password] [database] < news_ml_all.sql
11
ответ дан user3546602 17 апр. '14 в 22:20
источник поделиться

Для импорта нескольких файлов SQL за один раз используйте это:

#Unix-based solution
for i in *.sql;do mysql -u root -pPassword DataBase < $i;done

Для простого импорта:

#Unix Based solution
mysql -u root -pPassword DataBase < data.sql

Для WAMP:

#mysqlVersion replace with your own version
C:\wamp\bin\mysql\mysqlVersion\bin\mysql.exe -u root -pPassword DataBase < data.sql

для Xampp

C:\xampp\mysql\bin\mysql -u root -pPassword DataBase < data.sql
10
ответ дан Abdul Rehman Janjua 16 мая '15 в 14:13
источник поделиться

Вам не нужно указывать имя базы данных в командной строке, если файл .sql содержит инструкции CREATE DATABASE IF NOT EXISTS db_name и USE db_name.

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

10
ответ дан Reuben 03 сент. '15 в 2:41
источник поделиться

Добавьте параметр --force:

mysql -u username -p database_name --force < file.sql
7
ответ дан ktaria 24 авг. '14 в 21:17
источник поделиться

Импорт базы данных

  • Перейдите на диск:

    command: d:
    
  • Вход в MySQL

    command: c:\xampp\mysql\bin\mysql -u root -p
    
  • Он попросит pwd. Введите его:

    pwd
    
  • Выберите базу данных

    use DbName;
    
  • Укажите имя файла

    \.DbName.sql
    
6
ответ дан Pritam Chaudhari 31 июля '14 в 8:55
источник поделиться

Следующая команда работает для меня из командной строки (cmd) на Windows 7 на WAMP.

d:/wamp/bin/mysql/mysql5.6.17/bin/mysql.exe -u root -p db_name < database.sql
6
ответ дан victor 11 марта '15 в 18:38
источник поделиться

Я думал, что это может быть полезно для тех, кто использует Mac OS X:

/Applications/xampp/xamppfiles/bin/mysql -u root -p database < database.sql

Замените xampp на mamp или на других веб-серверах.

6
ответ дан Giri 09 нояб. '14 в 21:49
источник поделиться

Для информации у меня просто был root + без пароля, он не работал со всеми приведенными выше ответами.

  • Я создал нового пользователя со всеми привилегиями и паролем. Оно работает.

  • -ppassword БЕЗ ПРОСТРАНСТВА.

4
ответ дан Paul Leclerc 29 дек. '17 в 17:40
источник поделиться

Перейдите в каталог, в котором у вас есть MySQL.

 c:\mysql\bin\> mysql -u username -p password database_name <
 filename.sql

Также для удаления всех баз данных используйте параметр -all-databases, и больше не нужно указывать имя базы данных.

mysqldump -u username -ppassword –all-databases > dump.sql

Или вы можете использовать некоторые GUI-клиенты, такие как SQLyog, чтобы это сделать.

4
ответ дан Sathish D 16 июля '13 в 7:26
источник поделиться

Для резервного копирования создайте файл BAT и запустите этот файл BAT с помощью Task Scheduler. Он будет делать резервную копию базы данных; просто скопируйте следующую строку и вставьте Notepad, а затем сохраните файл .bat и запустите его в своей системе.

@echo off
for /f "tokens=1" %%i in ('date /t') do set DATE_DOW=%%i
for /f "tokens=2" %%i in ('date /t') do set DATE_DAY=%%i
for /f %%i in ('echo %date_day:/=-%') do set DATE_DAY=%%i
for /f %%i in ('time /t') do set DATE_TIME=%%i
for /f %%i in ('echo %date_time::=-%') do set DATE_TIME=%%i

"C:\Program Files\MySQL\mysql server 5.5\bin\mysqldump" -u username -ppassword mysql>C:/%DATE_DAY%_%DATE_TIME%_database.sql
4
ответ дан user3728517 25 авг. '14 в 14:02
источник поделиться

Иногда определенный порт, а также сервер IP-адрес этой базы данных также имеет значение...

mysql -u user -p user -h <Server IP> -P<port> (DBNAME) < DB.sql 
2
ответ дан JohnSharath 13 мая '14 в 10:49
источник поделиться

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

Я исправил его так:

mysql -u root -e "CREATE DATABASE db_name"
mysql db_name --force < import_script.sql
2
ответ дан David Silva Smith 11 авг. '16 в 8:02
источник поделиться

Аналогично qaru.site/questions/11186/...
Основные отличия для меня:

  • База данных должна существовать первой
  • Нет пробела между -p и паролем

shell> mysql -u root -ppassword #note: no space between -p and password
mysql> CREATE DATABASE databasename;
mysql> using databasename;
mysql> source /path/to/backup.sql

Запуск Fedora 26 с помощью MariaDB.

2
ответ дан jozxyqk 08 авг. '17 в 22:30
источник поделиться

Я использую Windows 10 с Powershell 5, и я нашел почти все "unix-подобные" решения, которые не работают для меня.

> mysql -u[username] [database-name] < my-database.sql
At line:1 char:31
+ mysql -u[username] [database-name] < my-database.sql
+                               ~
The '<' operator is reserved for future use.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : RedirectionNotSupported

Я заканчиваю использование этой команды.

> type my-database.sql | mysql -u[username] -h[localhost] -p [database-name]

и он работает отлично, надеюсь, это помогает.

Благодаря @Франческо Касула ответить Кстати.

2
ответ дан Fery Ardiant 13 марта '17 в 1:33
источник поделиться

Предоставление учетных данных в командной строке не является хорошей идеей. Вышеупомянутые ответы велики, но пренебрегайте упоминанием

mysql --defaults-extra-file=etc/myhost.cnf database_name < file.sql

Где etc/myhost.cnf - файл, содержащий хост, пользователя, пароль, и вы избегаете раскрывать пароль в командной строке. Вот пример,

[client]
host=hostname.domainname
user=dbusername
password=dbpassword
1
ответ дан ChuckCottrill 25 февр. '17 в 4:18
источник поделиться

Следующие шаги помогут загрузить file.sql в базу данных MySQL.

Шаг 1: Загрузите file.sql.zip в любой каталог и разархивируйте там
Примечание: sudo apt-get install unzip : sudo apt-get unzip file.sql.zip
Шаг 2. Теперь перейдите к этому каталогу. Пример: cd /var/www/html

Шаг 3: mysql -u username -p database-name < file.sql
       Введите пароль и дождитесь завершения загрузки.

1
ответ дан Ramesh Sinha 16 янв. '15 в 13:22
источник поделиться

Если ваша папка имеет несколько файлов SQL, и вы установили Git Bash, вы можете использовать эту команду для импорта нескольких файлов:

cd /my-project/data

cat *.sql | /c/xampp/mysql/bin/mysql -u root -p 1234 myProjectDbName
1
ответ дан o0omycomputero0o 20 дек. '15 в 5:22
источник поделиться

Экспорт определенных баз данных:

 djimi:> mysqldump --user=root --host=localhost --port=3306 --password=test -B CCR KIT > ccr_kit_local.sql

Это будет экспортировать базы данных CCR и KIT...

Импортировать все экспортированные базы данных в конкретный экземпляр MySQL (вы должны быть там, где находится ваш файл дампа):

  djimi:> mysql --user=root --host=localhost --port=3306 --password=test < ccr_kit_local.sql
0
ответ дан Musa 19 апр. '16 в 15:36
источник поделиться
  • 1
  • 2

Другие вопросы по меткам