- Как импортировать/экспортировать/просмотреть базу данных/таблицу MySQL/MariaDB при помощи SSH в 2021 году
- Импорт базы данных
- Вариант 1
- Вариант 2
- Экспорт базы данных
- Импорт/Экспорт БД MySQL через SSH на лету или в файл со сжатием
- Экспорт БД через SSH в файл
- Экспорт БД через SSH в файл со сжатием
- Импорт БД через SSH из файла
- Импорт БД через SSH из сжатого файла
- Копирование БД между серверами напрямую через SSH
- Как импортировать базу данных по SSH?
- Шаг 1 — Подготовка
- Шаг 2 — Подключение
- Шаг 3 — Импорт
- Импорт базы данных через ssh
- Как импортировать базу данных по SSH?
- Шаг 1 — Подготовка
- Шаг 2 — Подключение
- Шаг 3 — Импорт
Как импортировать/экспортировать/просмотреть базу данных/таблицу MySQL/MariaDB при помощи SSH в 2021 году
Изредка бывает необходимо импортировать/экспортировать довольно большую базу данных и через phpmyadmin делать это нет желания, выскакивают ошибки вроде:
Для этого логинимся в консоли ssh и выполняем следующую последовательность действий:
- Подключаемся к базе данных
username заменяем на имя пользователя, который имеет доступ к данной бд или root, если аутентификация работает через него, но не использует unix_socet
Вариант второй (если не используется unix_socet):
или (равнозначные команды)
После авторизации (в случае root или тп типа авторизации) можно посмотреть ваши текущие базы данных:
Вывод будет примерно следующим:
После чего можно выбрать нужную базу данных командой:
Вывод в таком случае будет следующим:
После чего вы можете просмотреть существующие в данной базе таблицы командой:
Вывод будет следующим:
Так же вы можете посмотреть все записи в конкретной таблице следующей командой:
Вывод будет аналогичным:
Чтобы посмотреть спецификацию таблицы, используйте следующую команду:
Вывод будет аналогичным:
Импорт базы данных
Вариант 1
Если вы хотите импортировать дамп базы из файла на сервере, то можете выполнить следующую команду:
username — логин для доступа к базе
/home/files/dumps/backup_database_name.sql — адрес файла бекапа на сервере
Вариант 2
Если вы уже авторизовались в mysql/mariadb, то можете выбрать базу данных командой:
После чего следующей командой импортировать базу:
/home/files/dumps/backup_database_name.sql — адрес файла бекапа на сервере
Импорт отдельной таблицы:
Чтобы импортировать одну таблицу в существующую базу данных, вы должны использовать следующую команду:
Экспорт базы данных
Для экспорта можно использовать простую команду:
username — логин для доступа к базе
/home/files/dumps/backup_database_name.sql — адрес файла бекапа на сервере
Чтобы экспортировать одну таблицу из вашей базы данных, вы должны использовать следующую команду:
Опять же, вам нужно будет заменить имя пользователя, базу данных и имя таблицы на правильную информацию.
Импорт/Экспорт БД MySQL через SSH на лету или в файл со сжатием
В данной статье описаны способы экспорта и импорта баз данных MySQL в файл, в файл со сжатием и «на лету» между серверами.
Вы можете сразу перейти к пункту «Копирование БД между серверами через SSH на лету», либо ознакомиться со статьей целиком.
Переменные в этой статье:
USERNAME — имя пользователя БД,
PASSWORD — пароль пользователя БД,
DATABASE — имя базы данных,
db_file_name.sql — имя файла, с которым проводится та или иная операция,
REMOTE_SERVER_USER — имя пользователя удаленного сервера
REMOTE_SERVER_ADDRESS — адрес удаленног сервера (IP или доменное имя)
Экспорт БД через SSH в файл
Для того, чтобы экспортировать базу данных MySQL в файл через консоль SSH, воспользуйтесь командой:
Экспорт БД через SSH в файл со сжатием
Если база данных большого размера, есть смысл сжать файл перед копированием. Сделать это можно следующим образом:
Вы также можете создать файл экспорта, содержащий временную отметку выполнения данной операции, что полезно при частых дампах, выполнив эту команду:
Импорт БД через SSH из файла
Для внесения экспортированных данных из файла в базу воспользуйтесь этой командой:
Импорт БД через SSH из сжатого файла
либо, если вы воспользовались для экспорта со сжатием второй командой, то выполнить этот код:
Копирование БД между серверами напрямую через SSH
Когда вы ограничены дисковым пространством и нет возможности сделать экспорт в файл, в можете провести его напрямую, выполнив команду ниже:
Как импортировать базу данных по SSH?
Через phpMyAdmin можно загрузить базы до 256 МБ (иногда даже меньше, если в таблицах очень много строк).
Если импорт через phpMyAdmin не удался, Вы можете осуществить его, подключившись по SSH. Для этого:
Шаг 1 — Подготовка
Загрузите базу (файл в формате .sql) в public_html (Вы можете сделать это через FTP).
Сохраните пароль базы либо задайте ей новый и запомните его.
Шаг 2 — Подключение
Подключитесь к своему хостинг-аккаунту по SSH.
Убедитесь, что Вы находитесь в нужной директории (public_html). Для этого выполните команду ls . Если Вы находитесь в другом каталоге (не видите файлов сайта), используйте одну за другой команды ls и cd. Например, cd 123 — где вместо 123 укажите папку, которая отображается в списке — и так чередуйте ls и cd , пока не увидите файлы сайта. Для большинства сайтов путь будет выглядеть так:
Если отображаются файлы сайта и загружённый архив — отлично, переходите к следующему пункту.
Если Вы не видите файл резервной копии, проверьте с помощью файлового менеджера, действительно ли файл загружен и помещен в public_html.
Шаг 3 — Импорт
И наконец само импортирование базы. Введите следующую команду:
Если параметры Вашей базы:
Имя базы MySQL: u123456789_database
Имя пользователя MySQL: u123456789_admin
А загруженный файл — database.sql, то команда будет выглядеть таким образом:
Останется только ввести пароль — и база должна успешно начать импортироваться. Импорт займёт некоторое время, когда он будет завершён, с новой строчки появится
и возможность ввести новую команду.
После этого можете перейти в phpMyAdmin и проверить — база уже будет импортирована 😊
Вот и всё! Теперь Вы знаете, как импортировать базу данных MySQL.
Импорт базы данных через ssh
Для импорта сначала загружаете дамп на сервер. Дамп должен быть в формате .sql
Далее подключаетесь на сервер по ssh и выполняете команду:
Также утилита имеет много опций и ключей, рассмотрим несколько основных полезных примеров по использованию mysqldump.
mysqldump -–all-databases -uUSER -pPASSWORD > /path/mysql-db-server.sql
Команда с опцией -–all-databases сохраняет все базы данных пользователя USER на MySQL-сервере.
mysql -uUSER -pPASSWORD USER . Если USER — root — то все БД.
mysqldump -uUSER -pPASSWORD DATABASE table1 table2 table3 > /path/ DATABASE_t1-t2-t3.sql
Сохраняет таблицы table1, table2, table3, из базы DATABASE в файле DATABASE_t1-t2-t3.sql.
mysqldump —no-data -uUSER -pPASSWORD DATABASE > /path/ DATABASE -schema.sql
Указав опцию —no-data команда сохранит структуру таблиц (без данных) в файле DATABASE_schema.sql.
mysqldump —add-drop-table -uUSER -pPASSWORD DATABASE > /path/ DATABASE .sql
Опция —add-drop-table добавит команду DROP TABLE (удаление таблицы) перед созданием таблиц.
mysqldump —databases -uUSER -pPASSWORD DATABASE > /path/ DATABASE .sql
Опция —databases добавит команду CREATE DATABASE перед созданием базы данных. Это позволяет не создавать и не задавать базу данных при восстановлении.
mysqldump -uUSER –pPASSWORD –h192.168.0.1 DATABASE > /path/ DATABASE .sql
Команда сделает бэкап базы DATABASE с сервера с ip-адресом 192.168.0.1
mysqldump —max_allowed_packet=8M -uUSER –pPASSWORD DATABASE > /path/ DATABASE .sql
Опция —max_allowed_packet=8M принудительно изменит размер пакета считываемых данных в оперативную память размером в 8 мегабайт.
mysqldump —quick -uUSER –pPASSWORD DATABASE > /path/ DATABASE .sql
Опция —quick заставляет команду записывать данные непосредственно на диск.
mysqldump —default-character-set=cp1251 -uUSER –pPASSWORD DATABASE > /path/ DATABASE .sql
Принудительно указываем кодировку cp1251.
mysqldump -uUSER –pPASSWORD DATABASE | gzip -c /path/ DATABASE .sql.gz
Этой последовательностью получаем архивированный бэкап с помощью утилиты gzip (для последующего восстановления необходимо будет предварительно извлечь из архива).
Заливаем архив бекапа в базу
gunzip USER -pPASSWORD DATABASE
или так
zcat /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE
Создаём новую базу данных
mysqladmin -u USER -pPASSWORD create NEWDATABASE
Для просмотра списка баз данных можно использовать команду:
mysqlshow -u USER -pPASSWORD
А так же можно посмотреть список таблиц базы:
mysqlshow -u USER -pPASSWORD DATABASE
USER — это имя пользователя базы данных;
PASSWORD — пароль пользователя;
SERVER — это имя (или ip-адрес) сервера базы данных;
Как импортировать базу данных по SSH?
Через phpMyAdmin можно загрузить базы до 256 МБ (иногда даже меньше, если в таблицах очень много строк).
Если импорт через phpMyAdmin не удался, Вы можете осуществить его, подключившись по SSH. Для этого:
Шаг 1 — Подготовка
Загрузите базу (файл в формате .sql) в public_html (Вы можете сделать это через FTP).
Сохраните пароль базы либо задайте ей новый и запомните его.
Шаг 2 — Подключение
Подключитесь к своему хостинг-аккаунту по SSH.
Убедитесь, что Вы находитесь в нужной директории (public_html). Для этого выполните команду ls . Если Вы находитесь в другом каталоге (не видите файлов сайта), используйте одну за другой команды ls и cd. Например, cd 123 — где вместо 123 укажите папку, которая отображается в списке — и так чередуйте ls и cd , пока не увидите файлы сайта. Для большинства сайтов путь будет выглядеть так:
Если отображаются файлы сайта и загружённый архив — отлично, переходите к следующему пункту.
Если Вы не видите файл резервной копии, проверьте с помощью файлового менеджера, действительно ли файл загружен и помещен в public_html.
Шаг 3 — Импорт
И наконец само импортирование базы. Введите следующую команду:
Если параметры Вашей базы:
Имя базы MySQL: u123456789_database
Имя пользователя MySQL: u123456789_admin
А загруженный файл — database.sql, то команда будет выглядеть таким образом:
Останется только ввести пароль — и база должна успешно начать импортироваться. Импорт займёт некоторое время, когда он будет завершён, с новой строчки появится
И возможность ввести новую команду.
После этого можете перейти в phpMyAdmin и проверить — база уже будет импортирована 😊
Вот и всё! Теперь Вы знаете, как импортировать базу данных MySQL.