Перейти до вмісту
UAhostingБлог
PHP та бази даних

Як експортувати й імпортувати велику базу MySQL через SSH

Для великої бази командний клієнт може бути зручнішим за phpMyAdmin, оскільки не залежить від часу веб-запиту. Потрібні SSH-доступ і права користувача БД.

Експорт поза веб-каталогом

Замініть хост, користувача та назву бази своїми значеннями. Пароль вводиться у відповідь на запит, а не записується в команду:

umask 077
mkdir -p ~/private-backups
cd ~/private-backups
mysqldump -h localhost -u account_dbuser -p --single-transaction --quick --no-tablespaces account_db > site.sql

Каталог ~/private-backups має бути поза document root усіх ваших сайтів. Не зберігайте дамп у public_html. --single-transaction придатний для узгодженого знімка InnoDB, але не гарантує узгодженості MyISAM; під час експорту не змінюйте структуру таблиць. Для активного магазину узгодьте консистентний фінальний експорт.

Перевірте копію

Дочекайтеся завершення без помилок, перевірте розмір і протестуйте імпорт в окрему базу. Порожній або неповний файл не є резервною копією. Якщо потрібні процедури, події чи спеціальні права, узгодьте додаткові параметри з адміністратором; не надавайте зайві глобальні права заради експорту.

Імпорт на новому сервері

Спочатку створіть цільову базу й користувача через cPanel. Перед імпортом збережіть наявну базу: SQL-дамп може перезаписати її таблиці. Завантажте файл захищеним способом і виконайте:

mysql -h localhost -u account_dbuser -p account_db < site.sql

Перевірте помилки, кодування та роботу застосунку. Імена команд можуть бути mysql/mysqldump або mariadb/mariadb-dump залежно від сервера. Приберіть зайві серверні копії лише після перевірки й збереження потрібного архіву.

Документація

MySQL: mysqldump

Від інструкції — до налаштування

Умови та можливості відповідної послуги — на основному сайті UAhosting.

Переглянути послугу