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

13 ответов

255

Linux:

В командной строке

поместите свою таблицу в example.sql

Импорт/экспорт для отдельной таблицы:

  • Экспорт табличной схемы

    Это создаст файл с именем по указанному пути и напишет команду sql для создания таблицы .

  • Импорт данных в таблицу

    Эта команда нуждается в файле sql, содержащем данные в форме операторов для таблицы . Все операторы будут выполнены и данные будут загружены.

22 март 2011, в 08:17
Поделиться

27

Экспорт

Импорт:

Общая база данных:

Отдельная таблица:

04 авг. 2013, в 21:08
Поделиться

19

Все эти параметры в порядке, если у вас есть возможность реэкспортировать данные.

Но если вам нужно использовать существующий файл SQL и использовать из него определенную таблицу, то этот perl-скрипт в блоге TimeSheet позволит вам извлечь таблицу в отдельный файл SQL и затем импортировать ее.

24 авг. 2011, в 09:34
Поделиться

11

Импорт отдельной таблицы

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

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

03 дек. 2014, в 07:50
Поделиться

4

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

Импорт/экспорт для отдельной таблицы:

Экспорт схемы таблицы

Это создаст файл с именем test.sql и создаст команду table sql для создания таблицы table_name.

Импорт данных в таблицу

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

06 апр. 2015, в 13:51
Поделиться

3

Он работает правильно…

Обратите внимание: в файле .sql указана ваша текущая база данных. 21 фев

2013, в 09:27
Поделиться

2

21 фев. 2013, в 09:27
Поделиться

2

Мы можем импортировать одну таблицу с помощью CMD, как показано ниже:

04 март 2015, в 14:20
Поделиться

1

если у вас уже есть нужная таблица в базе данных, сначала удалите ее, а затем запустите следующую команду:

12 нояб. 2018, в 11:48
Поделиться

1

Также его работа. В командной форме

11 апр. 2014, в 13:40
Поделиться

1

Это будет комбинация «EXPORT INTO OUTFILE» и «LOAD DATA INFILE»

Вам нужно экспортировать эту отдельную таблицу с «EXPORT INTO OUTFILE», это приведет к тому, что данные таблицы будут экспортированы в файл. Вы можете импортировать эту конкретную таблицу, используя «LOAD DATA INFILE»

Docs:

http://dev.mysql.com/doc/refman/5.0/en/select.html
http://dev.mysql.com/doc/refman/5.0/en/load-data.html

22 март 2011, в 07:11
Поделиться

От сервера к локальному (Экспорт)

От локального до сервера (импорт)

04 дек. 2018, в 11:54
Поделиться

21 март 2017, в 12:50
Поделиться

вы можете сделать это в команде mysql вместо команды linux.
1.login your mysql.
2.excute это в команде mysql:

09 нояб. 2016, в 10:06
Поделиться

Ещё вопросы

  • 21Возвращенный набор записей закрыт (доступ к базе данных mysql через ODBC в VBA)
  • 134ОШИБКА 1045 (28000): доступ запрещен для пользователя ‘root’ @ ‘localhost’ (с использованием пароля: ДА)
  • 45Удалить привилегии из базы данных MySQL
  • 116Когда добавлять какие индексы в таблицу в Rails
  • 107Создайте новое приложение Ruby on Rails, используя MySQL вместо SQLite
  • 102rails + MySQL на OSX: библиотека не загружена: libmysqlclient.18.dylib
  • 589В Node.js как «включить» функции из других моих файлов?
  • 422Быстрое чтение очень больших таблиц как данных
  • 129Как импортировать несколько файлов .csv одновременно?
  • 103Читать только ограниченное количество столбцов

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

При отсутствии PhpMyAdmin все описанные действия необходимо выполнять вручную через консоль. Но перед этим необходимо загрузить файл с дампом базы на VPS. Для этого можно использовать подключение по SFTP-протоколу с правами root.

Установив SFTP соединение, копируем sql-файл в любую директорию на сервере, например, /root.

  • Теперь подключаемся к VPS через SSH-консоль с правами root. Такой уровень доступа вы получаете по умолчанию, заказав любой хостинг виртуальных серверов.
  • Подключаемся к серверу MySQL командой:
mysql -u root –p

Вводим пароль mysql-пользователя root и нажимаем Enter. В результате в консоли будет выведено приветствие «Welcome to the MySQL monitor.» с указанием id сессии и версии MySQL.

Для начала необходимо создать базу данных командой:

CREATE DATABASE database_name;

Зайдем в созданную базу данных при помощи команды:

USE database_name;

Для импорта дампа БД используется команда source. В случае с файлом database.sql команда будет следующей:

source /root/database.sql;

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

mysql> source /root/database.sql;
Query OK, 0 rows affected (0.01 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.03 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 1 row affected (0.00 sec)
Database changed
Query OK, 0 rows affected (0.01 sec)
Query OK, 4 rows affected (0.01 sec)
Records: 4  Duplicates: 0  Warnings: 0
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
mysql>

Проверить наличие загруженной БД database можно командой:

show databases;

Пример выполнения этой команды ниже:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| database           |
| mysql              |
| phpmyadmin         |
+--------------------+
4 rows in set (0.00 sec)

Теперь необходимо создать пользователя для этой базы и наделить его соответствующими привилегиями. Ниже приведен пример создания пользователя db_user с паролем user_password и установкой полных прав на управление базой database:

Создаем пользователя:

CREATE USER 'db_user'@'localhost' IDENTIFIED BY 'user_password';

Убираем глобальные привилегии:

GRANT USAGE ON * . * TO 'db_user'@'localhost' IDENTIFIED BY 'user_password';

Устанавливаем полные привилегии в пределах базы:

GRANT ALL PRIVILEGES ON `database` . * TO 'db_user'@'localhost';

Отключаемся от mysql-сервера командой:

quit;

На этом процесс импорта завершен.

PowerShellPowerShell

Примечание

В настоящее время управляемый экземпляр Azure SQL не поддерживает экспорт базы данных в BACPAC-файл с помощью Azure PowerShell.Azure SQL Managed Instance does not currently support exporting a database to a BACPAC file using Azure PowerShell. Чтобы экспортировать управляемый экземпляр в BACPAC-файл, используйте SQL Server Management Studio или SQLPackage.To export a managed instance into a BACPAC file, use SQL Server Management Studio or SQLPackage.

Используйте командлет New-азсклдатабасикспорт , чтобы отправить запрос на экспорт базы данных в службу базы данных SQL Azure.Use the New-AzSqlDatabaseExport cmdlet to submit an export database request to the Azure SQL Database service. Операция экспорта может занять некоторое время в зависимости от размера базы данных.Depending on the size of your database, the export operation may take some time to complete.

Чтобы проверить состояние запроса на экспорт, используйте командлет Get-азсклдатабасеимпортекспортстатус .To check the status of the export request, use the Get-AzSqlDatabaseImportExportStatus cmdlet. Если выполнить его немедленно после запроса, то обычно возвращается сообщение Состояние: выполняется.Running this immediately after the request usually returns Status: InProgress. Отображение сообщения Состояние: выполнен означает, что экспорт завершен.When you see Status: Succeeded the export is complete.

Как определить, когда использовать методы импорта и экспорта вместо дампа и восстановленияDetermine when to use import and export techniques instead of a dump and restore

Используйте средства MySQL для импорта и экспорта баз данных в базу данных MySQL в Azure в следующих сценариях.Use MySQL tools to import and export databases into Azure MySQL Database in the following scenarios. В других сценариях можно получить преимущество при использовании дампа и восстановления вместо этого подхода.In other scenarios, you might benefit from using the dump and restore approach instead.

  • Если вам нужно выбрать несколько таблиц для импорта из имеющейся базы данных MySQL в базу данных Azure, лучше всего использовать метод импорта и экспорта.When you need to selectively choose a few tables to import from an existing MySQL database into Azure MySQL Database, it’s best to use the import and export technique. Таким образом, можно пропустить все ненужные таблицы в процессе переноса, чтобы сэкономить время и ресурсы.By doing so, you can omit any unneeded tables from the migration to save time and resources. Например, используйте параметр или с и параметр с .For example, use the or switch with and the switch with .
  • При перемещении объектов, отличных от таблиц, явно создайте эти объекты.When you’re moving the database objects other than tables, explicitly create those objects. Включите ограничения (первичный ключ, внешний ключ, индексы), представления, функции, процедуры, триггеры и другие объекты базы данных, которые требуется перенести.Include constraints (primary key, foreign key, indexes), views, functions, procedures, triggers, and any other database objects that you want to migrate.
  • При перемещении данных из внешних источников данных, отличных от базы данных MySQL, создайте неструктурированные файлы и импортируйте их с помощью команды mysqlimport.When you’re migrating data from external data sources other than a MySQL database, create flat files and import them by using mysqlimport.

Убедитесь, что все таблицы в базе данных используют подсистему хранилища InnoDB при загрузке данных в базу данных Azure для MySQL.Make sure that all tables in the database use the InnoDB storage engine when you’re loading data into Azure Database for MySQL. База данных Azure для MySQL поддерживает только подсистему хранилища InnoDB и не поддерживает другие подсистемы хранилища.Azure Database for MySQL supports only the InnoDB storage engine, so it doesn’t support alternative storage engines. Если таблицам требуются другие подсистемы хранилища, преобразуйте их для использования с форматом ядра InnoDB перед миграцией в базу данных Azure для MySQL.If your tables require alternative storage engines, be sure to convert them to use the InnoDB engine format before the migration to Azure Database for MySQL.

Например, при наличии WordPress или веб-приложения, которое использует ядро MyISAM, сначала преобразуйте таблицы путем переноса данных в таблицы InnoDB.For example, if you have a WordPress or web app that uses the MyISAM engine, first convert the tables by migrating the data into InnoDB tables. Затем восстановите базу данных Azure для MySQL.Then restore to Azure Database for MySQL. Используйте предложение , чтобы задать ядро для создания таблицы, а затем передайте данные в совместимую таблицу перед переносом.Use the clause to set the engine for creating a table, and then transfer the data into the compatible table before the migration.

Экспорт (скачивание) баз данных MySQL большого размера через SSH-терминал

SSH – сетевой протокол, который позволяет удаленно (через специальные команды) управлять системой или сервером. В Windows для работы с этим протоколом существует множество программ, популярной из которых считается «PuTTY».

На некоторых хостингах, как, например, в Beget, существует встроенный Терминал прямо в панели управления. Не будем далеко ходить и рассмотрим описанную в заголовке задачу на его примере. Стоит отметить, что описанные ниже операции можно проделать и в отдельном SSH-клиенте.

1. Запускаем Терминал. На хостинге Beget он выглядит следующим образом:

2. Если вы подключаетесь к серверу через стороннюю программу – авторизуйтесь на нем, введя соответствующие данные (получить их можете в панели управления хостингом или у вашего хостинг-провайдера).

3. Далее вводим последовательно 2 команды. Первая – это:

так мы точно переходим в корень хостинга, и вторая – это:

непосредственно сам экспорт, где:

USERNAME – логин пользователя, имеющего доступ к базе данных.

DATABASE – название базы данных, которую хотим экспортировать.

backup.sql – название файла, в котором будет сохранена база данных и путь относительно корневой папки. При такой конструкции база будет сохранена в корень хостинга.

4. После ввода команды вам будет предложено ввести пароль от пользователя, которого вы указали в третьем шаге. Вводите пароль и нажимаете «Enter» на клавиатуре

Обратите внимание, что ввод пароля в SSH-терминале не показывается, то есть вводите вы пароль или вставляете – на его месте всегда будет пустое место

После того, как сервер будет вновь готов принимать команды по SSH, это будет означать, что экспорт базы закончен и вы можете скачать ее по FTP или через файловый менеджер хостинга.

Процесс экспорта (и импорта) в SSH не транслируется, и если ваша база имеет довольно большой объем, запаситесь терпением, так как ответ от сервера вы можете получить спустя больше чем 20 минут.

Importing Data with mysqlimport

MySQL also includes a utility program named mysqlimport that acts as a wrapper around LOAD DATA, so that you can load the input files directly from the command line.

To load data from the dump.txt into mytbl, use the following command at the UNIX prompt.

$ mysqlimport -u root -p --local database_name dump.txt
password *****

If you use mysqlimport, command-line options provide the format specifiers. The mysqlimport commands that correspond to the preceding two LOAD DATA statements looks as shown in the following code block.

$ mysqlimport -u root -p --local --fields-terminated-by = ":" \
   --lines-terminated-by = "\r\n"  database_name dump.txt
password *****

The order in which you specify the options doesn’t matter for mysqlimport, except that they should all precede the database name.

The mysqlimport statement uses the —columns option to specify the column order −

$ mysqlimport -u root -p --local --columns=b,c,a \
   database_name dump.txt
password *****

Копирование базы данных MySQL на тот же сервер

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

  1. Сначала создайте новую базу данных, используя оператор CREATE DATABASE.
  2. Во-вторых, экспортируйте все объекты базы данных и данные базы данных, из которой вы хотите скопировать, используя инструмент mysqldump.
  3. В-третьих, импортируйте файл дампа SQL в новую базу данных.

Для демонстрации мы скопируем базу данных classicmodels в базу данных classicmodels_backup.

Шаг 1. Создайте базу данных classmodels_backup:

Сначала войдите на сервер базы данных MySQL:

>mysql -u root -p
Enter password: **********

Затем используйте оператор CREATE DATABASE следующим образом:

> CREATE DATABASE classicmodels_backup;

В-третьих, используйте команду SHOW DATABASES для проверки:

> SHOW DATABASES

Сервер базы данных MySQL возвращает следующий вывод:

+----------------------+
| Database             |
+----------------------+
| classicmodels        |
| classicmodels_backup |
| information_schema   |
| mysql                |
| performance_schema   |
| sys                  |
+----------------------+
6 rows in set (0.00 sec)

Как видите, мы успешно создали базу данных classicmodels_backup.

Шаг 2 . Копирование объектов базы данных и данные в файл SQL с помощью инструмента mysqldump.

Предположим, вы хотите сбросить объекты базы данных и данные базы данных classicmodels в файл SQL, расположенный в папке D:\db, вот команда:

>mysqldump -u root -p classicmodels > d:\db\classicmodels.sql
Enter password: **********

По сути, эта команда инструктирует mysqldump войти на сервер MySQL, используя учетную запись пользователя root с паролем, и экспортирует объекты базы данных и данные classicmodels базы данных в d:\db\classicmodels.sql

Обратите внимание, что оператор(>) означает экспорт

Шаг 3 . Импортируйте файл d:\db\classicmodels.sql в базу данных classicmodels_backup.

>mysql -u root -p classicmodels_backup < d:\db\classicmodels.sql
Enter password: **********

Обратите внимание, что оператор (

Чтобы проверить импорт, вы можете выполнить быструю проверку с помощью команды SHOW TABLES.

> SHOW TABLES FROM classicmodels_backup;

Он вернул следующий вывод:

+--------------------------------+
| Tables_in_classicmodels_backup |
+--------------------------------+
| customers                      |
| employees                      |
| offices                        |
| orderdetails                   |
| orders                         |
| payments                       |
| productlines                   |
| products                       |
+--------------------------------+

8 rows in set (0.01 sec)

Как видите, мы успешно скопировали все объекты и данные из базы данных classicmodels в базу данных classicmodels_backup.

Создание базы данных в службе базы данных Azure для сервера MySQLCreate a database on the Azure Database for MySQL server

Создайте пустую базу данных в базе данных Azure для сервера MySQL, куда необходимо перенести данные.Create an empty database on the Azure Database for MySQL server where you want to migrate the data. Для этого используйте средство MySQL Workbench, Toad или Navicat.Use a tool such as MySQL Workbench, Toad, or Navicat to create the database. База данных может иметь то же имя, что и база данных, которая содержит данные дампа. Вы также можете создать базу данных с другим именем.The database can have the same name as the database that contains the dumped data, or you can create a database with a different name.

Чтобы подключиться, найдите сведения о подключении на странице Обзор базы данных Azure для MySQL.To get connected, locate the connection information in the Overview of your Azure Database for MySQL.

Добавьте сведения о подключении MySQL Workbench.Add the connection information to MySQL Workbench.

ОсобенностиConsiderations

  • Чтобы экспорт был транзакционно согласованным, необходимо убедиться в том, что во время экспорта не происходит ни одной операции записи, или что вы экспортируете из транзакционно согласованной копии базы данных.For an export to be transactionally consistent, you must ensure either that no write activity is occurring during the export, or that you are exporting from a transactionally consistent copy of your database.

  • Максимальный размер BACPAC-файла при экспорте в хранилище BLOB-объектов составляет 200 ГБ.If you are exporting to blob storage, the maximum size of a BACPAC file is 200 GB. Для архивации BACPAC-файла большего размера выполняйте экспорт в локальное хранилище.To archive a larger BACPAC file, export to local storage.

  • Экспорт BACPAC-файла в службу хранилища Azure уровня «Премиум» с использованием методов, описанных в этой статье, не поддерживается.Exporting a BACPAC file to Azure premium storage using the methods discussed in this article is not supported.

  • Хранилище за брандмауэром сейчас не поддерживается.Storage behind a firewall is currently not supported.

  • Если операция экспорта длится более 20 часов, она может быть отменена.If the export operation exceeds 20 hours, it may be canceled. Для повышения производительности во время экспорта можно сделать следующее.To increase performance during export, you can:

    • Временно повысить объем вычислительных ресурсов.Temporarily increase your compute size.
    • Прекратить все операции чтения и записи во время экспорта.Cease all read and write activity during the export.
    • Используйте для всех больших таблиц кластеризованный индекс со значениями, отличными от NULL.Use a clustered index with non-null values on all large tables. Без кластеризованных индексов экспорт может завершиться ошибкой, если он длится больше 6–12 часов.Without clustered indexes, an export may fail if it takes longer than 6-12 hours. Это обусловлено тем, что службам экспорта требуется выполнить проверку таблицы, чтобы экспортировать всю таблицу.This is because the export service needs to complete a table scan to try to export entire table. Хороший способ определить, оптимизированы ли таблицы для экспорта, — выполнить DBCC SHOW_STATISTICS и убедиться, что значение RANGE_HI_KEY не равно NULL и имеет хорошее распределение.A good way to determine if your tables are optimized for export is to run DBCC SHOW_STATISTICS and make sure that the RANGE_HI_KEY is not null and its value has good distribution. Дополнительную информацию см. в разделе DBCC SHOW_STATISTICS.For details, see DBCC SHOW_STATISTICS.

Примечание

BACPAC-файлы не предназначены для операций службы архивации и восстановления.BACPACs are not intended to be used for backup and restore operations. Azure автоматически создает резервные копии для каждой пользовательской базы данных.Azure automatically creates backups for every user database. Дополнительные сведения см. в статьях Обзор обеспечения непрерывности бизнес-процессов с помощью базы данных SQL Azure и Автоматическое резервное копирование.For details, see business continuity overview and SQL Database backups.

Используем консоль

Экспорт

Для того, чтобы произвести экспорт, мы будем использовать утилиту mysqldump. При помощи нее осуществляется работа с текстовыми файлами базы данных. Итак, вы должны знать название базы данных, а также иметь доступ (логин и пароль) к аккаунту, который имеет, по крайней мере, доступ read only (только для чтения).

Для экспорта базы данных введите вот такую команду:

mysqldump -u имя_пользователя -p название_БД > data-dump.sql

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

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

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

-- MySQL dump 10.13 Distrib 5.7.16, for Linux (x86_64)
--
-- Host: localhost Database: database_name
-- ------------------------------------------------------
-- Server version 5.7.16-0ubuntu0.16.04.1

Если во время процесса экспорта будут какие-нибудь ошибки, утилита mysqldump выведет на экран сообщение о них.

Импорт

Для того, чтобы импортировать существующий файл в MySQL или MariaDB, вам нужно начать с создания новой базы данных. Именно в нее вы затем загрузите содержимое резервной копии.

Сначала подключитесь к базе данных в качестве root-пользователя (либо другого пользователя, который сможет создать новую базу данных):

$ mysql -u root –p

После того, как вы подключились к консоли MySQL, создайте новую базу данных (в данном случае new_database):

mysql> CREATE DATABASE new_database;

После этого на экране появился следующий вывод:

Output
Query OK, 1 row affected (0.00 sec)

Теперь для выхода из консоли MySQL нажмите CTRL+D. Далее переходите к самому импорту. Сделать это можно, введя вот такую команду:

$ mysql -u имя_пользователя -p new_database < data-dump.sql

Команда очень похожа на команду экспорта, вам нужно ввести имя пользователя, название новой базы данных, куда вы будете импортировать данные (в качестве примера new_database), и название самого файла, который вы собираетесь импортировать (data-dump.sql).

Если команда выполнена корректно, то никакого вывода на экране вы не увидите; на экране могут отобразиться только сообщения о каких-то ошибках. Как и в случае с экспортом, проверить, точно ли все прошло успешно, вы можете путем подключения к MySQL и просмотра данных. Сделать это можно, к примеру, используя команды USE и SHOW. Команда use определяет, какая база данных будет использоваться в дальнейших запросах. Введите:

mysql> use new_database

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

Что касается команды show, то она используется для того, чтобы посмотреть информацию о самих базах данных, о таблицах, столбцах, которые они содержат, а также о состоянии сервера.

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

mysql> SHOW TABLES;

Хотите увидеть список столбцов в какой-то определенной таблице? Используйте команду SHOW COLUMNS FROM и название нужно вам таблицы:

SHOW COLUMNS FROM название_таблицы

Статистику по работе сервера можно получить в ответ на команду:

mysql> SHOW GLOBAL STATUS;
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *