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

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

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

database_name < file.sql

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

  • Как я могу импортировать этот файл без проблем?
  • Нужно ли сначала создавать базу данных?

1705
задан Peter Mortensen 10 July 2019 в 14:46
поделиться

37 ответов

Попробуйте:

mysql -u username -p database_name < file.sql

Проверьте MySQL Options .

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

Примечание-2: Используйте -R и --triggers, чтобы сохранить процедуры и триггеры исходной базы данных. По умолчанию они не копируются.

Примечание-3 Возможно, вам придется создать (пустую) базу данных из mysql, если она еще не существует и экспортированный SQL не содержит CREATE DATABASE (экспортируется с помощью --no-create-db или -n, прежде чем вы сможете импортировать его.

3242
ответ дан bansi 10 July 2019 в 14:46
поделиться

Попробуйте это: -

C:\xampp\mysql\bin>mysql -u root -p database_name --force < C:\file.sql
0
ответ дан Amarat 10 July 2019 в 14:46
поделиться

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

d:/wamp/bin/mysql/mysql5.6.17/bin/mysql.exe -u root -p db_name < database.sql
7
ответ дан Peter Mortensen 10 July 2019 в 14:46
поделиться

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

 mysql> use db_name;
 mysql> source file_name.sql;
103
ответ дан Manoj Kumar 10 July 2019 в 14:46
поделиться

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

Я исправил это так

mysql -u root -e "CREATE DATABASE db_name"
mysql db_name --force < import_script.sql
5
ответ дан David Silva Smith 10 July 2019 в 14:46
поделиться

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

C:\xampp\mysql\bin>mysql -u username -ppassword databasename < C:\file.sql
36
ответ дан Peter Mortensen 10 July 2019 в 14:46
поделиться

Аналогично ответу vladkras на Как импортировать файл SQL с помощью командной строки в MySQL? .

Ключевые различия для меня:

  1. База данных должна существовать первой
  2. Нет пробела между -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.

5
ответ дан Peter Mortensen 10 July 2019 в 14:46
поделиться

Следующие шаги помогают загрузить 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
Введите пароль и дождитесь завершения загрузки.

4
ответ дан Peter Mortensen 10 July 2019 в 14:46
поделиться

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

Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;
45
ответ дан Peter Mortensen 10 July 2019 в 14:46
поделиться

Вы можете использовать:

mysql -u<user> -p<pass> <db> < db.sql

Пример:

mysql -uroot -proot db < db.sql
1
ответ дан Peter Mortensen 10 July 2019 в 14:46
поделиться

В целях резервного копирования создайте BAT-файл и запустите этот BAT-файл, используя Task Scheduler . Это займет резервную копию базы данных; просто скопируйте следующую строку и вставьте в Блокнот , а затем сохраните файл .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
5
ответ дан Peter Mortensen 10 July 2019 в 14:46
поделиться

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

 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
1
ответ дан Peter Mortensen 10 July 2019 в 14:46
поделиться

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

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

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

[client]
host=hostname.domainname
user=dbusername
password=dbpassword
5
ответ дан ChuckCottrill 10 July 2019 в 14:46
поделиться

В ОС Windows вы можете использовать следующую команду для импорта данных из дампа SQL.

C: \ Program Files \ MySQL \ MySQL Server 5.7 \ bin> mysql -u <> -p <> DBName < filelocation \ query.sql

Где -u - имя пользователя, а -p - пароль MySQL. Затем введите свой пароль и дождитесь импорта данных.

1
ответ дан Peter Mortensen 10 July 2019 в 14:46
поделиться

Если вы используете MAMP на Mac & OS, это может быть полезно:

/applications/MAMP/library/bin/mysql -u MYSQL_USER -p DATABASE_NAME < path/to/database_sql/FILE.sql

MYSQL_USER по умолчанию является root.

1
ответ дан Peter Mortensen 10 July 2019 в 14:46
поделиться

Например,

Я установил программное обеспечение на C:\xampp\mysql\bin, и мой файл находится по адресу C:\Users\file.sql

Просто установите username и database_name

Примечание. : Сначала вам нужно создать базу данных (database_name) вручную

. Выполнить эту команду:

cd C:\xampp\mysql\bin && mysql -u username -p database_name < C:\Users\file.sql

, а затем ввести пароль

1
ответ дан Mahdi Bashirpour 10 July 2019 в 14:46
поделиться

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

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

mysql> use db_name;

mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;
278
ответ дан Hexaholic 10 July 2019 в 14:46
поделиться

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

cd /my-project/data

cat *.sql | /c/xampp/mysql/bin/mysql -u root -p 1234 myProjectDbName
1
ответ дан Community 10 July 2019 в 14:46
поделиться

В Ubuntu

 mysql -u root -p
 CREATE database dbname;
 use dbname;
 source /home/computername/Downloads/merchantapp.sql
 exit;

В Windows

Загрузите файл SQL и сохраните его в C:\xampp\mysql\bin.

После этого откройте командную строку с помощью C:\xampp\mysql\bin:

 C:\xampp\mysql\bin> mysql -u username -p database_name < file.sql
1
ответ дан Peter Mortensen 10 July 2019 в 14:46
поделиться

Чтобы импортировать базу данных через терминал

Перейдите в папку, где находится файл .sql

Затем выполните следующую команду:

mysql -u database_user_name -p database_name < sql_file_name.sql

Будет запрошено для пароля. Введите пароль базы данных. Импорт данных в базу данных займет несколько секунд.

1
ответ дан Peter Mortensen 10 July 2019 в 14:46
поделиться

Вы можете попробовать этот запрос.

Экспорт:

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

Импорт:

mysql -u username –-password=your_password database_name < file.sql

и подробности по этой ссылке:

https://chartio.com/resources/ учебники / импорт-из-и-экспортеров к файлам, используя самую-MySQL-командную строку /

8
ответ дан rust 10 July 2019 в 14:46
поделиться
  1. Откройте командную строку MySQL
  2. Введите путь к каталогу bin MySQL и нажмите Enter
  3. Вставьте файл SQL в bin папка сервера mysql.
  4. Создайте базу данных в MySQL.
  5. Используйте эту конкретную базу данных, куда вы хотите импортировать файл SQL.
  6. Введите source databasefilename.sql и Enter
  7. Ваш файл SQL успешно загружен.
58
ответ дан Peter Mortensen 10 July 2019 в 14:46
поделиться

Перейдите в каталог, где у вас есть 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, чтобы сделать это.

8
ответ дан Peter Mortensen 10 July 2019 в 14:46
поделиться

Широко используется 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;
672
ответ дан Black 10 July 2019 в 14:46
поделиться

Добавить опцию --force :

mysql -u username -p database_name --force < file.sql
9
ответ дан Peter Mortensen 10 July 2019 в 14:46
поделиться

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

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

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

mysql -u username -p password < dump.sql
28
ответ дан Adeleke Akinade 10 July 2019 в 14:46
поделиться

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

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

    command: d:
    
  2. MySQL login

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

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

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

    \.DbName.sql
    
11
ответ дан Peter Mortensen 10 July 2019 в 14:46
поделиться

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

mysqldump -u username -p database_name > database_name.sql

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

mysql -u username -p database_name < database_name.sql
30
ответ дан Peter Mortensen 10 July 2019 в 14:46
поделиться

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

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

13
ответ дан Peter Mortensen 10 July 2019 в 14:46
поделиться

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

mysql -u username -p database_name < / путь к файлу / имя_файла.sql

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

mysqldump -u username -p имя_базы_данных> / путь к файлу / имя_файла. sql

После этих команд в командной строке будет запрошен ваш пароль MySQL.

4
ответ дан Peter Mortensen 10 July 2019 в 14:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: