Загрузка дампа MySQL через консоль

Обновлено: 04.07.2024

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

  • Перенос базы данных MySQL из одной учетной записи или провайдера веб-хостинга в другую.
  • Импорт сторонней базы данных MySQL.
  • Резервное копирование базы данных MySQL.

Как экспортировать базу данных MySQL

Вы можете экспортировать базу данных MySQL в файл с помощью phpMyAdmin или программы командной строки таблицы/базы данных mysqldump.

Вы можете экспортировать базу данных MySQL с помощью веб-интерфейса phpMyAdmin. Для этого выполните следующие действия:

    Войдите в cPanel.

Страница администрирования phpMyAdmin появится в новом окне.

Подтвердите, что в разделе "Метод экспорта" выбран вариант "Быстрый".

Если вы используете более старую версию phpMyAdmin, в которой нет опции Quick, выполните следующие действия:

  • В разделе "Экспорт" нажмите "Выбрать все" .
  • Установите флажок "Сохранить как файл" и нажмите "Перейти" . Выполняется процесс экспорта.

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

  1. Откройте командную строку на компьютере, где хранится база данных. Например, если база данных находится в другой учетной записи веб-хостинга или у другого поставщика веб-хостинга, войдите в учетную запись, используя SSH. Если у вас есть физический доступ к компьютеру, вы можете открыть окно DOS или терминала для доступа к командной строке.
  2. Введите следующую команду и нажмите Enter. Замените username на ваше имя пользователя, а dbname на имя базы данных, которую вы хотите экспортировать:

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

Создание новой базы данных MySQL и назначение пользователя

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

    Войдите в cPanel.

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

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

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

Вы можете импортировать базу данных MySQL с помощью веб-интерфейса phpMyAdmin. Для этого выполните следующие действия:

    Войдите в cPanel.

Страница администрирования phpMyAdmin появится в новом окне.

Вы можете импортировать базу данных MySQL из командной строки с помощью программы mysql. Для этого выполните следующие действия:

  1. Перенесите файл dbexport.sql в свою учетную запись хостинга A2 с помощью SCP, SFTP или FTP.
  2. Войдите в свою учетную запись хостинга A2, используя SSH.
  3. Перейдите в каталог, в который вы загрузили файл dbexport.sql. Например, если вы загрузили файл dbexport.sql в свой домашний каталог, введите cd ~ .
  4. Введите следующую команду и нажмите Enter. Замените имя пользователя на свое имя пользователя и имя базы данных на имя базы данных, в которую вы хотите импортировать данные:
  5. Теперь база данных dbname должна содержать данные из файла dbexport.sql.
Устранение неполадок при импорте базы данных MySQL

Вы можете получить одно из следующих сообщений об ошибке при попытке импортировать базу данных MySQL с помощью phpMyAdmin или программы mysql:

  • ОШИБКА 1044: Доступ запрещен для пользователя 'username1'@'localhost' к базе данных 'username2_database'
    Это сообщение об ошибке возникает, когда файл импорта содержит оператор SQL, который пытается получить доступ к базе данных для неправильного имени пользователя. Обратите внимание, что в этом примере username2 в username2_database не соответствует username1 в 'username1'@'localhost '. Вы должны отредактировать файл импорта и изменить username2 на новое username1.
  • ОШИБКА 1049: Неизвестная база данных 'username_database'
    Это сообщение об ошибке появляется, когда целевая база данных не существует. Убедитесь, что вы сначала создали базу данных, как описано выше, а затем повторите попытку импорта.
  • ОШИБКА 1064: ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, на предмет правильного синтаксиса для использования рядом с 'username_database' в строке x.
    Это сообщение об ошибке появляется, когда файл импорта не содержит резервных данных для базы данных или в файле есть синтаксическая ошибка MySQL. Кроме того, файл импорта может быть изменен, поврежден или иметь неподдерживаемый формат.(Файлы импорта должны содержать операторы SQL; другие форматы файлов, такие как CSV, не работают с программой mysql.) Попробуйте еще раз экспортировать базу данных, а затем импортировать ее.
  • ОШИБКА 1227: доступ запрещен; вам нужны (по крайней мере, одна из) привилегия SUPER для этой операции
    Это сообщение об ошибке появляется, когда файл импорта содержит одну или несколько инструкций SQL, требующих привилегий суперпользователя (таких как инструкции SET GLOBAL или CREATE DEFINER). В некоторых случаях можно просто удалить эти операторы из файла .sql и перезапустить процесс импорта. Например, оператор CREATE DATABASE можно безопасно удалить, потому что вы уже должны были создать базу данных в cPanel. Однако, если вам требуется доступ суперпользователя MySQL, вам следует подумать о переносе своей учетной записи на VPS или выделенный сервер, где у вас есть полный контроль над средой.

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

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

Предпосылки

Чтобы импортировать или экспортировать базу данных MySQL или MariaDB, вам потребуется:

  • Виртуальная машина с пользователем sudo без полномочий root. Если вам нужен сервер, перейдите сюда, чтобы создать дроплет DigitalOcean с вашим любимым дистрибутивом Linux. После создания выберите свой дистрибутив из этого списка и следуйте нашему Руководству по начальной настройке сервера.
  • Установлены MySQL или MariaDB. Чтобы установить MySQL, следуйте нашему руководству How To Install MySQL. Чтобы установить MariaDB, следуйте нашему руководству How To Install MariaDB.
  • Образец базы данных, созданный на вашем сервере базы данных. Чтобы создать ее, следуйте инструкциям «Создание образца базы данных» в нашем руководстве «Введение в запросы в MySQL».

Примечание. В качестве альтернативы ручной установке вы можете изучить приложение MySQL One-Click на DigitalOcean Marketplace.

Шаг 1. Экспорт базы данных MySQL или MariaDB

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

Используйте mysqldump для экспорта базы данных:

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

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

Выполните следующую команду:

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

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

Шаг 2. Импорт базы данных MySQL или MariaDB

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

Сначала войдите в MySQL как пользователь root или другой пользователь с достаточными правами для создания новых баз данных:

Эта команда приведет вас к приглашению оболочки MySQL. Затем создайте новую базу данных с помощью следующей команды. В этом примере новая база данных называется new_database :

Вы увидите этот вывод, подтверждающий создание базы данных.

Затем выйдите из оболочки MySQL, нажав CTRL+D . Из обычной командной строки вы можете импортировать файл дампа с помощью следующей команды:

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

Если команда выполняется успешно, она не выводит никаких результатов. Если во время процесса возникнут какие-либо ошибки, mysql вместо этого выведет их на терминал. Чтобы проверить успешность импорта, войдите в оболочку MySQL и проверьте данные. Выбор новой базы данных с помощью USE new_database, а затем использование SHOW TABLES; или аналогичная команда для просмотра некоторых данных.

Заключение

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

Чтобы узнать больше о MySQL, посетите нашу страницу ресурсов MySQL.

Чтобы узнать больше о запросах MySQL, ознакомьтесь с нашим руководством «Введение в запросы в MySQL».

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

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

В этом кратком руководстве мы узнаем, как импортировать и экспортировать базы данных из интерфейса командной строки. Это очень простой и понятный процесс. Итак, давайте сначала узнаем, как экспортировать базы данных MySQL с помощью интерфейса командной строки.

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

MySQL предоставляет нам утилиту под названием mysqldump для экспорта наших баз данных. Это очень простая в использовании утилита. Вы можете экспортировать одну или несколько баз данных с помощью этой команды или утилиты. Итак, давайте посмотрим, как экспортировать одну базу данных с помощью mysqldump.

Чтобы экспортировать одну базу данных с помощью mysqldump, выполните на своем сервере следующую команду. Чтобы выполнить эту команду, вам сначала нужно подключиться к вашему серверу через SSH.

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

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

Теперь давайте посмотрим, как экспортировать базу данных MySQL, за исключением нескольких таблиц. Это не очень широко используемая функция, потому что в основном вы будете экспортировать базу данных со всеми таблицами в ней. Выполните следующую команду, чтобы экспортировать базу данных, за исключением нескольких таблиц.

Опять же, не забудьте заменить переменные фактическим именем пользователя, именем базы данных и именем таблицы. Если вы хотите игнорировать несколько таблиц в процессе экспорта, просто добавьте дополнительные параметры --ignore-table в свои команды с таблицами, которые вы хотите игнорировать.

Итак, вот как вы можете экспортировать базы данных MySQL с помощью командной строки. Теперь давайте посмотрим, как импортировать базы данных MySQL.

Импорт базы данных MySQL с помощью командной строки

Импортировать базу данных MySQL стало еще проще. Мы можем использовать основную команду mysql для импорта баз данных, которые экспортируются и сохраняются в виде файла SQL. Но сначала вам нужно создать базу данных MySQL, в которую вы хотите импортировать файл SQL.

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

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

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

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

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

3 ответа на вопрос «Импорт и экспорт баз данных в MySQL с помощью командной строки»

Приветствие от службы поддержки InterServer.

Если у вас все еще есть какие-либо вопросы, не стесняйтесь нажать на виджет живого чата, плавающий на нашем веб-сайте во время прокрутки страниц.

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

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

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

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


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

54 ответа 54

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

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

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


Итак, -R и --triggers кажутся опциями для mysqldump , что мне не сразу было понятно, основываясь на ответе.Кроме того, --triggers включен по умолчанию. «Эта опция включена по умолчанию; отключите ее с помощью --skip-triggers ».

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

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

Юникс

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

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


Понятия не имею, почему в примерах для Windows есть параметры -u и -p, а в примере для Unix нет. Интерфейс для mysql одинаков на обоих, поэтому, скорее всего, вам нужна та же команда в Unix, что и здесь для Windows.

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

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


Я согласен, что это лучший ответ. Часть autocommit=0 имеет большое значение с точки зрения скорости.

Не всегда необходимо отключать автофиксацию. Дамп базы данных стоит проверить в редакторе, он может уже начинаться с SET autocommit=0; .

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


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

Войдите в mysql и введите приведенные ниже команды.

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

Но это не из командной строки в духе вопроса. Он использует оболочку MySQL в интерактивном режиме.

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

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

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

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


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

Читайте также: