Как загрузить файл sql в базу данных
Перейти к содержимому

Как загрузить файл sql в базу данных

  • автор:

Импорт и экспорт баз данных MySQL через консоль и phpMyAdmin

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

Все таблицы из базы данных можно экспортировать в отдельный файл, который потом же импортировать обратно для восстановления информации. Кроме этого, созданный дамп БД можно использовать для переноса информации в другую базу MySQL.

Существует два способа импорта/экспорта:

  • через веб-интерфейс PhpMyAdmin;
  • подключившись к консоли MySQL локально или через SSH.

Подробнее о подключении через протокол SSH можно узнать здесь.

Все описанные действия с MySQL схожи по выполнению на любых операционных системах Linux.

Экспорт базы данных с помощью PhpMyAdmin

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

Базы данных phpmyadmin

Выбрав необходимую базу данных, нужно перейти в раздел «Экспорт».

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

Для быстрого экспорта подойдёт вариант «Быстрый – отображать минимум настроек», при котором используются оптимальные параметры переноса. Чтобы открыть список дополнительных опций, нужно выбрать метод «Обычный – отображать все возможные настройки».

Во вкладке «Формат» рекомендуется выставить расширение SQL (.sql) для экспортируемого файла. Но также можно использовать и другие форматы, такие как CSV (.csv) и XML (.xml).

Определившись с параметрами, остаётся выполнить экспорт нажатием «Вперёд». В браузере начнётся загрузка файла.

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

Экспорт базы данных выполняется с помощью утилиты MySQLdump:

mysqldump --user=Login --password=Password db_name > db_name.sql

Переменные в приведенном примере:

  • «Login» – имя пользователя MySQL.
  • «Password» – пароль пользователя MySQL.
  • «db_name» – наименование базы данных.
  • «db_name.sql» – конечный файл.

MySQLdump позволяет экспортировать базу данных с удаленного сервера (если хосту разрешено подключение):

mysqldump --user=Login --password=Password --host=XXX.XXX.XXX.XXX db_name > db_name.sql

*Вместо «XXX.XXX.XXX.XXX» указывается актуальный IP-адрес сервера.

Импорт базы данных с помощью PhpMyAdmin

Для начала необходимо авторизоваться в интерфейсе PhpMyAdmin и выбрать базу данных в левом верхнем углу. После этого стоит перейти в раздел «Импорт».

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

Теперь нужно нажать «Выбрать файл» и в открывшемся проводнике выбрать SQL-файл (принимаются также архивы Gzip, Bzip2, Zip). В разделе «Формат» отмечается расширение используемого файла.

Все остальные параметры изменять необязательно. Завершить импорт можно нажатием кнопки «Вперёд»

Импорт базы данных MySQL через консоль (замена существующей)

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

mysql --user=Login --password=Password

*Вместо «Login» и «Password» вводятся действительные данные пользователя MySQL.

Теперь выбирается существующая база данных, с которой планируется дальнейшая работа:

use db_name

*Вместо «db_name» вводится наименование существующей БД.

Остаётся выполнить импорт таблиц следующей командой:

source db_name.sql

*Вместо «db_name.sql» вводится путь до файла SQL (предварительно загружается на сервер).

Импорт и создание базы данных MySQL через консоль

Выше был описан способ импорта, при котором осуществляется замена таблиц в существующей базе данных. Но такой вариант не подойдёт, если БД изначально не существует. В таком случае потребуется сначала создать новую базу данных, а уже потом импортировать в неё таблицы из резервной копии.

Для начала необходимо авторизоваться в консоли MySQL:

mysql --user=Login --password=Password

*Вместо «Login» и «Password» вводятся действительные данные пользователя MySQL.

Далее нужно создать новую базу данных:

CREATE DATABASE new_database;

*Вместо «new_database» вводится собственное наименование базы данных.

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

Output Query OK, 1 row affected (0.00 sec)

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

use new_database

Остаётся импортировать таблицы из резервной копии:

source db_name.sql

*Вместо «db_name.sql» вводится путь до файла SQL (предварительно загружается на сервер).

Надежный хостинг для сайта. 14 дней — бесплатно!

Мы всегда на связи в соцсетях

Поддержка в привычной среде

Мы в Яндекс Кью

  • Хостинг для сайта
  • CMS хостинг
  • VPS сервер
  • Удалённый рабочий стол
  • Домены
  • Стресс-тест на DDoS

Как загрузить файл в SQL: подробное руководство по загрузке файлов в базу данных

**Как загрузить файл в SQL?** Чтобы загрузить файл в SQL, вы можете использовать команду `LOAD DATA INFILE`. Вот пример кода:

 LOAD DATA INFILE 'путь_к_файлу' INTO TABLE имя_таблицы FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; 

Здесь `путь_к_файлу` — путь к вашему файлу, `имя_таблицы` — название таблицы, в которую вы хотите загрузить данные. Эта команда позволяет загружать данные из файла в таблицу. Вы также можете настроить разделитель полей и символы для обрамления полей, чтобы соответствовать вашим потребностям. Надеюсь, это помогло вам загрузить файл в SQL. Если у вас есть еще вопросы, не стесняйтесь задавать!

Детальный ответ

Как загрузить файл в SQL

В SQL существует несколько способов загрузки файлов в базу данных. В этой статье мы рассмотрим два наиболее часто используемых метода: использование оператора LOAD DATA и использование функции BULK INSERT.

Использование оператора LOAD DATA

Оператор LOAD DATA является частью стандарта SQL и позволяет загружать данные из файла в таблицу базы данных. Пример использования оператора LOAD DATA:

LOAD DATA INFILE 'path/to/file.csv' INTO TABLE table_name FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

В этом примере мы загружаем данные из файла ‘file.csv’ в таблицу ‘table_name’. Мы указываем разделитель полей (здесь это запятая), символ, который окружает поле (в данном случае это кавычки), символ окончания строки (в данном случае это символ перевода строки) и количество пропускаемых строк (в данном случае это одна строка). Перед использованием оператора LOAD DATA, убедитесь, что у вас есть права на чтение файла и запись в таблицу базы данных.

Использование функции BULK INSERT

Функция BULK INSERT является специфичной для некоторых баз данных, таких как Microsoft SQL Server. Она позволяет загружать данные из файла в таблицу базы данных. Пример использования функции BULK INSERT:

BULK INSERT table_name FROM 'path/to/file.csv' WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n', FIRSTROW = 2 );

В этом примере мы загружаем данные из файла ‘file.csv’ в таблицу ‘table_name’. Мы указываем разделитель полей (здесь это запятая), символ окончания строки (в данном случае это символ перевода строки) и номер первой загружаемой строки (в данном случае это вторая строка). Перед использованием функции BULK INSERT, убедитесь, что у вас есть достаточные права доступа и разрешения на работу с файлами.

Рекомендации по использованию

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

Это лишь некоторые из основных рекомендаций по загрузке файлов в SQL базу данных. Надеюсь, эта статья помогла вам разобраться в процессе загрузки файлов в SQL.

Мастер импорта неструктурированных файлов в SQL

Мастер импорта неструктурированных файлов позволяет легко скопировать данные из неструктурированного файла (CSV-файл, TXT-файл) в новую таблицу в вашей базе данных. Мастер импорта неструктурированных файлов поддерживает файлы форматирования с разделителями-запятыми и с фиксированной шириной. В этом обзоре описано, почему нужно использовать этот мастер, как его найти, а также приведен простой пример.

Почему нужно использовать этот мастер?

Этот мастер создан на основе интеллектуальной платформы Program Synthesis using Examples (PROSE) и позволяет улучшить текущий процесс импорта. Для пользователей, которые не обладают глубокими знаниями в предметной области, импорт данных часто представляет собой трудную и утомительную задачу, чреватую ошибками. При использовании мастера достаточно указать входной файл и уникальное имя таблицы, и платформа PROSE сделает все остальное.

PROSE анализирует шаблоны данных во входном файле и определяет имена столбцов, типы, разделители и т. д. Платформа запоминает структуру файла и выполняет все действия по обработке данных.

Предварительные требования

Эта функция доступна в SQL Server Management Studio (SSMS) 17.3 и более поздних версий. Убедитесь, что вы используете последнюю версию. Ее можно найти здесь.

Приступая к работе

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

  1. Откройте SQL Server Management Studio.
  2. Подключитесь к экземпляру ядра СУБД SQL Server или к узлу localhost.
  3. Разверните узел Базы данных, щелкните правой кнопкой мыши базу данных («test» в примере ниже), выберите Задачи, а затем — Импорт неструктурированного файла над пунктом меню «Импорт данных».

Wizard menu

Дополнительные сведения о различных функциях мастера см. в следующем руководстве:

Руководство

При выполнении действий, описанных в этом учебнике, вы можете использовать свой собственный неструктурированный файл. Если у вас нет собственного файла, можете скопировать следующий CSV-файл из Excel. Назовите этот файл example.csv и сохраните его в формате CSV в удобном месте, например на рабочем столе.

Wizard Excel

  1. Мастер доступа
  2. Указание входного файла
  3. Предварительный просмотр данных
  4. Изменение столбцов
  5. Сводка
  6. Результаты

Шаг 1. Открытие мастера и страница «Приступая к работе»

Откройте мастер, как описано здесь.

Первая страница мастера — это страница приветствия. Если вы не хотите, чтобы она открывалась снова, установите флажок Больше не показывать это окно.

Wizard Intro

Шаг 2. Указание входного файла

Нажмите кнопку «Обзор», чтобы выбрать входной файл. По умолчанию мастер ищет файлы в форматах CSV и TXT. PROSE определит, является ли это файлом с разделителями-запятыми или с фиксированной шириной, независимо от расширения файла.

Имя новой таблицы должно быть уникальным. В противном случае вы не сможете продолжить работу мастера.

Wizard Specify

Шаг 3. Предварительный просмотр данных

Мастер открывает окно предварительного просмотра для первых 50 строк данных. Если в данных есть ошибки, нажмите кнопку «Отмена». В противном случае перейдите к следующей странице.

Wizard Preview

Шаг 4. Изменение столбцов

Мастер определяет, что он считает правильными именами столбцов, типами данных и т. д. Здесь можно изменить поля, если они неверны (например, тип данных должен быть плавающей, а не int).

Столбцы, в которых обнаруживаются пустые значения, будут иметь флажок «Разрешить значения NULL». Однако если в столбце предполагается наличие значений NULL, а флажок «Разрешить значения NULL» не установлен, здесь можно обновить определение таблицы, чтобы разрешить значения NULL в одном или во всех столбцах.

Когда все будет готово, нажмите кнопку «Далее».

Wizard Modify

Шаг 5. Сводка

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

Wizard Summary

Шаг 6. Результаты

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

Wizard Results

Устранение неполадок

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

Error inserting data into table. (Microsoft.SqlServer.Prose.Import) The given value of type String from the data source cannot be converted to type nvarchar of the specified target column. (System.Data) String or binary data would be truncated. (System.Data) 

Тактики устранения этой ошибки:

  • Расширение размера(ов) типа данных на шаге Изменение столбцов, например длины столбца nvarchar, может компенсировать отклонения данных от остальной части неструктурированного файла.
  • Включение отчета об ошибках на шаге Изменение столбцов, особенно по меньшему числу, покажет, какие строки в неструктурированном файле содержат данные, не соответствующие выбранным типам данных. Например, в неструктурированном файле, где во второй строке появляется ошибка, при выполнении импорта с отчетом об ошибках с диапазоном 1 появляется конкретное сообщение об ошибке. Проверка файла непосредственно в расположении может обеспечить более точные изменения типов данных на основе данных в определенных строках.

Error Reporting Results

Error inserting data into table occurred while inserting rows 1 - 2. (Microsoft.SqlServer.Prose.Import) The given value of type String from the data source cannot be converted to type float of the specified target column. (System.Data) Failed to convert parameter value from a String to a Double. (System.Data) 

В настоящее время импортер использует кодировку на основе активной кодовой страницы системы. На большинстве компьютеров по умолчанию используется ANSI.

Подробнее

Дополнительные сведения о мастере.

  • Дополнительные сведения об импорте из других источников. Если вы хотите импортировать несколько неструктурированных файлов, обратитесь к разделу Мастер импорта и экспорта SQL Server.
  • Дополнительные сведения о подключении к неструктурированным файлам в качестве источников. Если вам необходимы дополнительные сведения о подключении к неструктурированным файлам в качестве источников, обратитесь к разделу Подключение к источнику данных неструктурированного файла.
  • Дополнительные сведения о PROSE. Если вам необходимы сведения об интеллектуальной платформе, которая используется этим мастером, обратитесь к разделу Пакет SDK для PROSE.

Как загрузить файл sql в базу данных

В учебном курсе «Основы SQL» для демонстрации работы SQL используется PostgreSQL. Сейчас это самая популярная из бесплатных систем управления базами данных. Все SQL запросы в курсе проверены на работоспособность именно в PostgreSQL. Однако большая часть запросов использует синтаксис стандарта ANSI SQL, поэтому они будут работать и в других системах, включая MySQL, Microsoft SQL Server и Oracle. Вы можете использовать любую систему управления базами данных, которая вам нравится, но я рекомендую PostgreSQL.

1. Загрузите PostgreSQL для вашей операционной системы на странице Downloads официального сайта. Я устанавливал на Windows, если вы используете другую операционную систему, то выбирайте соответствующие ссылки для загрузки. Примеры в курсе проверены на PostgreSQL 13, поэтому рекомендую устанавливать именно эту версию. Однако на предыдущих версиях, начиная с PosgreSQL 10, также все должно работать.

Инсталлятор для Windows и Mac OS загружается с сайта компании EDB, которая предоставляет платную поддержку для PostgreSQL. Однако PostgreSQL, которую вы установите с помощью этого инсталлятора от EDB, будет полностью бесплатной.

2. Запустите скачанный инсталлятор PostgreSQL.

Не забудьте запомнить или записать пароль пользователя postgres, он вам понадобится для подключения к базе и выполнения запросов!

После завершения установки инсталлятор предложит вам запустить Stack Builder для установки дополнительных утилит и компонентов. Этого можно не делать, просто снимите галочку в пункте «Stack Builder…» и нажмите кнопку «Finish».

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

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

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

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

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

40 ответов

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

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

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

Обычное использование mysqldump для создания резервной копии всей базы данных:

Вы можете загрузить файл дампа обратно на сервер следующим образом:

UNIX

То же самое в командной строке Windows:

PowerShell

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

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

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

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

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

Например, если имя пользователя root , а пароль — password . И у вас есть имя базы данных как bank , а файл SQL — bank.sql . Затем просто выполните следующие действия:

Помните, где находится ваш файл SQL. Если ваш файл SQL находится в директории Desktop /directory, затем зайдите в каталог рабочего стола и введите команду следующим образом:

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

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

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

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

и при появлении запроса укажите пароль.

Затем создайте базу данных и используйте ее

Затем импортируйте файл sql или dump в базу данных из

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

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

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

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

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

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

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

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

Для импорта нескольких файлов SQL одновременно используйте это:

Для простого импорта:

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

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

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

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

Он попросит pwd. Введите его:

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

Укажите имя файла

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

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

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

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

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

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

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

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

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

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

mysql -u database_user -p — набор символов по умолчанию = utf8 [db_name]

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

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

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

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

Как восстановить базу MySQL

В данном примере показано восстановление из заранее сделанного dump-файла (с помощью mysqldump). Если нужна инструкция по созданию резервной копии, читайте Как сделать дамп базы MySQL.

Подготовка базы

Подключаемся к командной оболочке mysql:

* данной командой мы подключимся к СУБД под пользователем root. Опция -p потребует ввода пароля.

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

> CREATE DATABASE db DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

* подробнее про создание баз читайте на странице Создание и удаление баз в MySQL/MariaDB.

При необходимости, также создаем пользователя, который будет иметь доступ к базе:

> CREATE USER ‘dbuser’@’localhost’ IDENTIFIED BY ‘password’;

> GRANT ALL PRIVILEGES ON db.* TO ‘dbuser’@’localhost’;

Из файла через командную строку

Если при создании дампа использовалась gzip, сначала распаковываем архив:

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

Команда выполняется из UNIX-shell:

* где root — учетная запись, от которой идет подключение к серверу баз данных; DNBAME — имя базы, которую необходимо восстановить (переменная, которую мы задали ранее); /tmp/recovery.sql — файл дампа, из которого восстанавливаем базу.
* можно также добавить опцию -v — она позволит показать на экране ход процесса, однако, она очень сильно снижает скорость восстановления — не рекомендуется ее использовать для больших баз.

На самом деле, если внутри дампа есть указание на переход к конкретной таблице (USE table), то восстановление будет выполняться в нее, а не ту таблицу, которую мы указали в переменной DBNAME. Как это проверить и изменить сказано ниже.

Если у нас много файлов, которые нужно импортировать, можно выполнить следующую команду:

cat /tmp/*.sql | mysql -u root -p db

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

С помощью phpMyAdmin

Выбираем базу, которую нужно восстановить. Переходим на вкладку Импорт — кликаем по кнопке Выберите файл:

Восстановление базы при помощи phpMyAdmin

Выбираем файл с резервной копией.

Нажимаем по OK и ждем восстановления данных.

Пропускать ошибки

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

Суть сводится к простому добавлению ключа —force или -f:

mysql -v -u root -p -f db < /tmp/dump.sql

Восстановление в другую базу

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

* где database_name — имя конкретной базы.

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

. приведет к тому, что восстановление будет выполняться в базу new_database_name.

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

sed ‘s/USE `database_name`;/USE `new_database_name`;/’ -i /tmp/dump.sql

* в данном примере мы заменим имя базы database_name на new_database_name в файле /tmp/dump.sql.

Восстановление в другую таблицу

Команда mysql не предусматривает возможности восстановить дамп только для одной таблицы. Есть два варианта это обыграть.

1. Восстановление с применением временной базы.

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

> INSERT INTO database_name.table_name SELECT * FROM new_database_name.table_name;

* в данном примере выполняется копирование содержимого таблицы table_name из базы данных new_database_name в базу database_name.

2. Резервирование только одной таблицы.

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

mysqldump -uroot -p database_name table_name > /tmp/dump_base_table.sql

После чего уже выполняем восстановление из дампа.

Возможные ошибки

В процессе восстановления мы можем столкнуться с разными ошибками. Рассмотрим их примеры.

MySQL server has gone away

Во время восстановления базы может выскочить ошибка:

ERROR 2006 (HY000) at line xxx: MySQL server has gone away.

Как правило, ее причина в низком значении параметра max_allowed_packet, который отвечает за ограничение выполнения команд из файла. Посмотреть текущее значение можно командой в mysql:

> SHOW VARIABLES LIKE ‘max_allowed_packet’;

Чтобы увеличить значение параметра, открываем конфигурационный файл my.cnf:

* в некоторых версиях СУБД конфиг может находится по пути /etc/my.cnf.d/server.cnf.

В разделе [mysqldump] редактируем или добавляем:

[mysqldump]
.
max_allowed_packet = 512M

* значение для данного параметра не обязательно должно быть таким большим.

Перезапускаем mysql одной из команд:

systemctl restart mariadb

systemctl restart mysqld

systemctl restart mysql

Row size too large

Ошибка выскакивает после небольшого времени работы восстановления. Более полный текст выглядит, примерно, так:

ERROR 1118 (42000) at line 608: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.

Причина: ошибка встречается, если в нашей базе есть большое количество текстовых полей и мы используем таблицы типа INNODB. По умолчанию, они имеют ограничение на объем данных, которые можно хранить в одной строке таблицы.

Решение:

Для решения проблемы мы можем добавить опцию innodb_strict_mode со значением 0. Данная опция регламентирует более строгий режим работы СУБД. Это грубое решение, которое позволит нам добиться результата, но мы можем выполнить настройку тонко — об этом можно прочитать на соответствующей странице блога mithrandir.ru.

Мы же сделаем все по-быстрому. Открываем конфигурационный файл СУБД — его местоположение зависит от версии и реализации, например:

* это пример расположения для базы MariaDB 10. Более точное расположение можно найти в файле /etc/my.cnf.

Приводим опцию innodb_strict_mode к виду:

[mysqld]
.
innodb_strict_mode = 0

systemctl restart mariadb

* в данном примере мы перезапустили сервис для mariadb.

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

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

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

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

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

40 ответов

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

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

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

Обычное использование mysqldump для создания резервной копии всей базы данных:

Вы можете загрузить файл дампа обратно на сервер следующим образом:

UNIX

То же самое в командной строке Windows:

PowerShell

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

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

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

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

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

Например, если имя пользователя root , а пароль — password . И у вас есть имя базы данных как bank , а файл SQL — bank.sql . Затем просто выполните следующие действия:

Помните, где находится ваш файл SQL. Если ваш файл SQL находится в директории Desktop /directory, затем зайдите в каталог рабочего стола и введите команду следующим образом:

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

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

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

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

и при появлении запроса укажите пароль.

Затем создайте базу данных и используйте ее

Затем импортируйте файл sql или dump в базу данных из

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

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

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

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

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

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

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

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

Для импорта нескольких файлов SQL одновременно используйте это:

Для простого импорта:

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

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

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

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

Он попросит pwd. Введите его:

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

Укажите имя файла

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

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

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

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

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

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

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

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

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

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

mysql -u database_user -p — набор символов по умолчанию = utf8 [db_name]

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

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

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

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

Похожие публикации:

  1. Как посмотреть пароль в sql server
  2. Как посчитать количество столбцов sql
  3. Как преобразовать тип данных в sql
  4. Как работает join в sql

Добавить комментарий

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