Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

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

Linux / DevOps

Дамп и восстановление базы MySQL: mysqldump для новичков

Обновлено: 27.08.2026 · Официальная документация ↗

Зачем делать дамп базы данных вручную?

Перед любым обновлением CMS (WordPress, Bitrix), установкой плагинов или правкой конфигурации сайта необходимо делать резервную копию (дамп) базы данных MySQL/MariaDB. Это гарантирует, что в случае сбоя или повреждения таблиц вы сможете восстановить работу сайта за считанные минуты.

1. Как создать дамп базы данных (Экспорт)

  1. Создание простого SQL дампа:
    mysqldump -u root -p my_database > backup.sql

    Терминал запросит пароль от пользователя root в MySQL. После ввода пароля в текущей папке появится файл backup.sql.

  2. Создание дампа со сжатием на лету (Gzip):
    Если база большая, сожмите её сразу в архив для экономии места:
    mysqldump -u root -p my_database | gzip > backup_$(date +%Y-%m-%d).sql.gz
  3. Дамп сразу ВСЕХ баз данных на сервере:
    mysqldump -u root -p --all-databases > all_databases.sql

2. Как восстановить базу данных из дампа (Импорт)

  1. Создайте пустую базу данных (если она еще не создана):
    mysql -u root -p -e "CREATE DATABASE my_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
  2. Импортируйте SQL файл:
    # Из обычного файла .sql:
    mysql -u root -p my_database < backup.sql
    
    # Из сжатого архива .sql.gz:
    zcat backup.sql.gz | mysql -u root -p my_database

Важно: Обратите внимание на знак стрелочки: знак > используется для выгрузки дампа, а знак < — для заливки дампа обратно в базу.

💡 Практика специалистов: При экспорте баз данных современных сайтов обязательно добавляйте флаг `--default-character-set=utf8mb4`, чтобы не повредить кодировку эмодзи и спецсимволов при повторном импорте.

Частые вопросы (FAQ)

Что делать при ошибке Access denied for user 'root'@'localhost'?

Убедитесь, что вы вводите правильный пароль именно от базы данных MySQL (а не пароль администратора Linux), либо запустите команду через sudo: `sudo mysqldump my_database > backup.sql`.

Как сделать дамп без блокировки работающих таблиц сайта?

Для таблиц движка InnoDB всегда добавляйте флаг `--single-transaction`: `mysqldump --single-transaction -u root -p my_db > backup.sql`.

Как выгрузить только структуру таблиц без самих данных?

Используйте флаг `--no-data`: `mysqldump --no-data -u root -p my_database > schema.sql`.

Как увидеть процесс восстановления большого дампа?

Установите утилиту pv (`sudo apt install pv`) и запустите импорт: `pv backup.sql | mysql -u root -p my_database`.

Полезные материалы
Рекомендуем