через - как импортировать таблицу в базу данных mysql




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

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

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

database_name < file.sql

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

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

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

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

    command: d:
    
  2. Вход в MySQL

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

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

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

    \.DbName.sql
    

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

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

mysql -u database_user -p [db_name] <database_file.sql

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

mysql -u database_user -p --default-character-set = utf8 [db_name] <database_file.sql

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 содержит CREATE DATABASE IF NOT EXISTS db_name и USE db_name .

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


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

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

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


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

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


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

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

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

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

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

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

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


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

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

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

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

Пытаться:

mysql -u username -p database_name < file.sql

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

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

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


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

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

Следующие шаги помогут загрузить 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 является autocommit = true . Вы должны установить это перед импортом своего файла, а затем проверить, как импорт работает как драгоценный камень.

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

mysql> use db_name;

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

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

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

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

mysql -u username -p password < dump.sql

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

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

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


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

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

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

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

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

mysql --user=[user] --password=[password] [database] < news_ml_all.sql




import