Как импортировать и экспортировать базы данных в MySQL и MariaDB
Эта статья в первую очередь рассчитана на новичков в администрировании, для тех, кто хочет научиться самостоятельно производить импорт и экспорт баз данных. Зачем вам может это понадобиться? Допустим, вы хотите самостоятельно сделать бэкап, чтобы в дальнейшем при необходимости восстановить определенную версию базы данных. Или вам нужно сделать перенос сайта на другой сервер либо в другую среду разработки. В общем, причин может быть множество, поэтому понимание того, как сначала сделать, а потом импортировать резервную копию, лишним не будет.
Для того, чтобы выполнить все дальнейшие действия, у вас должны быть:
а) доступ к серверу на базе Linux, на котором работает MySQL/MariaDB;
б) название базы данных и данные доступа к ней.
Используем консоль
Для того, чтобы произвести экспорт, мы будем использовать утилиту 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, создайте новую базу данных (в данном случае 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 определяет, какая база данных будет использоваться в дальнейших запросах. Введите:
И тогда при всех последующих запросах в данном сеансе автоматически будет использоваться эта база данных. Данную установку можно изменить, использовав команду use с названием другой базы данных.
Что касается команды show, то она используется для того, чтобы посмотреть информацию о самих базах данных, о таблицах, столбцах, которые они содержат, а также о состоянии сервера.
Допустим, нам нужно посмотреть, список таблиц в базе. Для этого вводим:
Хотите увидеть список столбцов в какой-то определенной таблице? Используйте команду SHOW COLUMNS FROM и название нужно вам таблицы:
SHOW COLUMNS FROM название_таблицы
Статистику по работе сервера можно получить в ответ на команду:
Используем phpMyAdmin
Экспорт и импорт баз данных можно также делать через phpMyAdmin. В общем и целом, пожалуй, это даже более простой путь, чем использование консоли.
Зайдите в phpMyAdmin и выберите базу данных, с которых вы хотите работать.
Далее выберите вкладку «Экспорт» и, в зависимости от своих предпочтений, быстрый или обычный метод экспорта. Второй подойдет для тех, кто хочет самостоятельно выставить все настройки.
После внесения нужных изменений нажмите «Вперед» и выберите, куда хотите поместить созданный файл. Все, экспорт базы данных был успешно выполнен.
Выполнить импорт базы данных тоже совсем несложно. Как и в предыдущем случае, в списке слева выберите нужную вам базу данных, а затем перейдите во вкладку «Импорт».
Выберите файл для импорта на вашем компьютере и проверьте настройки. Скорее всего, они подойдут для импортирования вашего файла, но при желании их можно изменить. Нажмите кнопку «Вперед» - и будет выполнен импорт файла. Вы увидите надпись вроде такой:
Импорт успешно завершён, выполнено 32 запроса.
Ниже в красной рамке могут идти сообщения о возникших ошибках (например, о дублировании).
В списке слева вы можете выбрать базу данных, с которой работали, и посмотреть имеющиеся файлы, а также их содержимое (и изменить их).
Заключение
Выбор подходящего метода экспорта и импорта баз данных зависит только от вас и ваших предпочтений – кому-то проще работать в консоли, а для кого-то понятнее phpMyAdmin. Главное, нужно регулярно делать бэкапы, в том числе и ваших баз данных.
Кстати, полезную информацию о базах данных я также нашел в Справочном центре Timeweb.
Импорт и экспорт баз данных MySQL и MariaDB
При работе с данными очень важно уметь импортировать и экспортировать базы данных. Дампы данных можно использовать для резервного копирования и восстановления БД, что позволяет в случае необходимости получить доступ к одной из предыдущих версий данных или переместить их на новый сервер или среду разработки.
Дампы MySQL и MariaDB очень просты в работе. Это руководство научит вас экспортировать и импортировать базы данных с помощью дампа MySQL или MariaDB.
Требования
- Сервер Linux.
- Предварительно установленная система управления базами данных MySQL или MariaDB.
- База данных и пользователь СУБД.
Экспорт данных
Консольная утилита mysqldump позволяет экспортировать данные в текстовый файл SQL, который можно легко переместить. Для этого вам понадобится имя БД, а также учётные данные пользователя, у которого есть как минимум право на чтение БД.
Чтобы экспортировать БД, используйте такую команду:
mysqldump -u username -p database_name > data-dump.sql
- username – имя пользователя БД;
- database_name – имя БД, которую нужно экспортировать;
- 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. Создайте новую БД, например, new_database.
CREATE DATABASE new_database;
На экране появится вывод, подтверждающий, что БД была создана:
Query OK, 1 row affected (0.00 sec)
Закройте оболочку MySQL (CTRL+D). С помощью обычной командной строки импортируйте дамп:
mysql -u username -p new_database < data-dump.sql
- username – имя пользователя, у которого есть доступ к БД.
- newdatabase – имя новой БД.
- data-dump.sql – имя дампа, который нужно импортировать.
В случае успешного выполнения команды вывод не отображается на экране. Если во время выполнения возникла какая-либо ошибка, mysql выведет их в терминал. Чтобы убедиться, что данные импортированы успешно, войдите в оболочку MySQL и проверьте БД. Для этого можно использовать:
USE new_database;
SHOW TABLES;
Заключение
Теперь вы умеете перемещать данные MySQL и MariaDB с помощью дампа. Утилита mysqldump имеет множество дополнительных параметров, при помощи которых можно настраивать дампы; подробнее об этом – в официальной документации mysqldump.
How can I import a database using command line?
I am using Ubuntu 14.04. I want to import my database which is located on the server /var/www/backup.zip . Also I've SSH access using Putty. Noted that MySQL and phpMyadmin are installed on the server. When I run this command
nothing happens. A newline shows which starts with -> . What should I do now?
@muru Not sure what you mean exactly, but yes, as you see, there is mysql> at the beginning of the line.
2 Answers 2
mysql -u username -p database_name < /path/to/file.sql
mysql> use db_name; mysql> source backup-file.sql;
well what's the difference between yours ( mysql -u username -p database_name < /path/to/file.sql )and mine ( mysql -u root -p spy < /var/www/backup.zip )?
@stack that George intends that command to be run in the shell, and not inside mysql. (That's why the rest of the answer is headed by "from within mysql".)
in ubuntu you should add ./mysql to access file within xampp's bin folder otherwise it will search for global
The main problem is that you're trying to run a bash command from within mysql. If you run that command at the regular terminal prompt the format of the command is correct.
The second issue is that you have a zip file and not a SQL file so you need to unzip it first.
How do I load a sql.gz file to my database? (on Server Fault) explains most of what you need. My answer there should work here too with a slight modification:
unzip -p /var/www/backup.zip | mysql -u root -p mydb
unzip -p unzips to a pipe, so that you can pipe that into your database command. Make sure the zip file only contains one sql file.
mysql -u root -p mydb is going to prompt you for a password (the -p without a value) and then attempt to pipe in the file data to mydb - change the mydb to your own database. You shouldn't specify the password in the command line as it then remains in your command history.