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



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



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



database_name < file.sql


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




  • как я могу импортировать этот файл без проблем?

  • нужно ли мне создать сначала база данных?

1834   30  

30 ответов:

попробуй:

mysql -u username -p database_name < file.sql

Регистрация MySQL Options.

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

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

совместное использование 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;

мы можем использовать эту команду для импорта 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 файл находится в . Если вы хотите получить к нему доступ из Project каталог, то вы можете сделать так:

~/Project ? mysql -u root -p password bank < ~/Desktop/bank.sql
  1. Откройте командную строку MySQL
  2. введите путь к каталогу mysql bin и нажмите введите
  3. вставьте SQL-файл в bin папка сервера mysql.
  4. создать базу данных в MySQL.
  5. используйте эту конкретную базу данных, где вы хотите импортировать файл SQL.
  6. тип source databasefilename.sql и введите
  7. ваша загрузка файла SQL успешно.

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

mysql -u username -p database_name < file.sql

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

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

Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;

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

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

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

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

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

mysql -u username -p password < dump.sql

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

mysqldump -u username -p database_name > database_name.sql

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

mysql u -username -p database_name < database_name.sql

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

zcat database_file.sql.gz | mysql -u username -p -h localhost database_name
mysql --user=[user] --password=[password] [database] < news_ml_all.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

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

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

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

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

    command: d:
    
  2. MySQL login

    command: c:\xampp\mysql\bin\mysql -u root -p
    
  3. он будет просить для инвалидов. Введите его:

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

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

    \.DbName.sql
    

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

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

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

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

заменить xampp С mamp или другие веб-серверы.

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

d:/wamp/bin/mysql/mysql5.6.17/bin/mysql.exe -u root -p db_name < database.sql

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

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

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

для резервного копирования создайте файл BAT и запустите этот файл BAT с помощью Планировщик Задач. Это займет резервную копию базы данных; просто скопируйте следующую строку и вставьте в Блокнот а затем сохранить .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

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

я исправил это такой

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

для информации у меня просто был корень по умолчанию + withoutpassword, он не работает со всеми вышеперечисленными ответами.

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

  • - ppassword без пробела.

Я использую 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]

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

спасибо @Франческо Казула ' s ответ кстати.

аналогично https://stackoverflow.com/a/17666285/1888983
Ключевые отличия для меня:

  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.

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

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

mysql-u database_user-p [db_name]

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

mysql-u database_user-p --default-character-set=utf8 [db_name]

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.

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

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

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

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

[client]
host=hostname.domainname
user=dbusername
password=dbpassword

Comments

    Ничего не найдено.