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

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

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

database_name < file.sql

Это не работает, я получаю синтаксические ошибки.

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

57 ответов

Решение

Пытаться:

mysql -u username -p database_name < file.sql

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

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

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

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

Обычное использование 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;

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

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

mysql> use db_name;

mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;

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

 mysql> use db_name;
 mysql> source file_name.sql;

Самый простой способ импортировать в вашу схему:

Войдите в mysql и выполните команды, упомянутые ниже.

mysql> use your_db_name;

mysql> source /opt/file.sql;

Мы можем использовать эту команду для импорта 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 Папка / каталог, затем перейдите в каталог рабочего стола и введите команду следующим образом:

~ ? 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

Если у вас уже есть база данных, используйте следующую команду для импорта 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 файл существует, используйте относительный путь выше.

  1. Откройте командную строку MySQL
  2. Введите путь к каталогу bin MySQL и нажмите Enter
  3. Вставьте ваш файл SQL в bin папка сервера mysql.
  4. Создайте базу данных в MySQL.
  5. Используйте эту конкретную базу данных, куда вы хотите импортировать файл SQL.
  6. Тип source databasefilename.sql и введите
  7. Ваш файл SQL успешно загружен.

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

Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;

Хотя большинство ответов здесь просто упоминают простую команду

mysql -u database_user -p [db_name]

сегодня довольно часто в базах данных и таблицах используется сопоставление utf8, когда этой команды недостаточно. Имея utf8-сопоставление в экспортированных таблицах, необходимо использовать эту команду:

mysql -u database_user -p --default-символ-набор =utf8 [имя_базы_данных]

Surley это работает и для других кодировок, как показать правильную запись можно увидеть здесь:

https://dev.mysql.com/doc/refman/5.7/en/show-collation.html

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

Есть еще несколько параметров для команды, которые перечислены и объяснены здесь:

https://dev.mysql.com/doc/refman/5.7/en/mysql-command-options.html

Если вы используете другую версию базы данных, попробуйте поискать соответствующую версию руководства. Упомянутые ссылки относятся к версии MySQL 5.7.

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

mysqldump -u username -p database_name > database_name.sql

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

mysql u -username -p database_name < database_name.sql

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

zcat database_file.sql.gz | mysql -u username -p -h localhost database_name

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

C:\xampp\mysql\bin>mysql -u username -ppassword databasename < C:\file.sql

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

        mysql> create new_database;
  mysql> use new_database;
  mysql> source (Here you need to import the path of the sql file);
 eg:
  mysql> source E:/test/dump.sql;

Вам необходимо использовать косую черту (/) даже в Windows, например E:/test/dump.sql вместо E: \ test \ dump.sql

Или двойная обратная косая черта (\\) из-за экранирования, например E: \\ test \\ dump.sql

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

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

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

mysql -u username -p password < dump.sql
mysql --user=[user] --password=[password] [database] < news_ml_all.sql

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

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

mysql -u root -e "CREATE DATABASE db_name"
mysql db_name --force < import_script.sql

Для импорта нескольких файлов 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

Для экспорта базы данных:

mysqldump -u username -p database_name > file.sql

Для импорта базы данных:

mysql -u username -p database_name < file.sql

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

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

mysql -u root -p password -D database_name << import.sql

Используйте mysql справку для деталей mysql --help

Я думаю, что это будут полезные варианты в нашем контексте

[~]$ mysql --help
mysql  Ver 14.14 Distrib 5.7.20, for osx10.12 (x86_64) using  EditLine wrapper
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.                                                                                                                                         
Usage: mysql [OPTIONS] [database]
  -?, --help          Display this help and exit.
  -I, --help          Synonym for -?
  --bind-address=name IP address to bind to.
  -D, --database=name Database to use.
  --delimiter=name    Delimiter to be used.
  --default-character-set=name Set the default character set.
  -f, --force         Continue even if we get an SQL error.
  -p, --password[=name] Password to use when connecting to server.
  -h, --host=name     Connect to host.
  -P, --port=#        Port number to use for connection or 0 for default to, in order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/services, built-in default (3306).
  --protocol=name     The protocol to use for connection (tcp, socket, pipe,
  -s, --silent        Be more silent. Print results with a tab as separator, each row on new line.
  -v, --verbose       Write more. (-v -v -v gives the table output format).
  -V, --version       Output version information and exit.
  -w, --wait          Wait and retry if connection is down.

что интересно, если мы импортируем большую базу данных и не имеем индикатор выполнения. Используйте Pipe Viewer и посмотрите передачу данных через канал

Для Mac brew install pv.Для Debian/Ubuntu, apt-get install pv, Другие, обратитесь http://www.ivarch.com/programs/pv.shtml

pv import.sql | mysql -u root -p password -D database_name

1.45GiB 1:50:07 [339.0KiB/s]   [=============>      ] 14% ETA 11:09:36
1.46GiB 1:50:14 [ 246KiB/s]     [=============>      ] 14% ETA 11:09:15
1.47GiB 1:53:00 [ 385KiB/s]     [=============>      ] 14% ETA 11:05:36

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

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

    command: d:
    
  2. MySQL логин

    command: c:\xampp\mysql\bin\mysql -u root -p
    
  3. Это попросит PWD. Введите это:

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

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

    \.DbName.sql
    

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

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

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

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

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

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

Экспорт: mysqldump -u username –-password= ваш_пароль имя_базы_данных> file.sql

Импорт: mysql -u username –-password= ваш_пароль имя_базы_данных

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

https://chartio.com/resources/tutorials/importing-from-and-exporting-to-files-using-the-mysql-command-line/

Попробуйте этот код.

      mysql -u username -p database_name < file.sql

Для получения дополнительной информации: https://slaford.com/mysql/how-to-import-an-sql-file-using-the-command-line-in-mysql/

Добавить --force вариант:

mysql -u username -p database_name --force < file.sql

Аналогично /questions/915280/kak-importirovat-fajl-sql-s-pomoschyu-komandnoj-stroki-v-mysql/915295#915295
Ключевые отличия для меня:

  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

Запущена федора 26 с MariaDB.

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

mysql -u имя пользователя -p имя_базы_данных

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

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

после этого командная строка спросит ваш пароль mysql

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

mysql -u user -p user -h <Server IP> -P<port> (DBNAME) < DB.sql 

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

d:/wamp/bin/mysql/mysql5.6.17/bin/mysql.exe -u root -p db_name < database.sql
Другие вопросы по тегам