Различия

Показаны различия между двумя версиями страницы.


kak_behkapit_dannye_v_mysql [2025/07/06 12:39] (текущий) – создано - внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== Как бэкапить данные в MySQL ======
 +{{htmlmetatags>
 +metatag-description=(Создание резервной копии и восстановление базы данных MySQL.)
 +}}
 +{{ ::sozdanie_rezervnoj_kopii_i_vosstanovlenie_bazy_dannyx_mysql.jpg?nolink&600 |}}
 +
 +
 +Утилиты для резервирования MySQL:
 +
 +  * [[Sypex Dumper]] (Лицензии BSD).
 +  * [[automysqlbackup]]
 +  * [[mysqldump]]
 +
 +Читайте также: [[hosting_control_panel_cpanel]].
 +
 +====== Что такое дамп базы данных и как его создать ======
 +Дамп (англ. dump – сбрасывать) – файл, включающий в себя содержимое памяти компьютера или базы данных. В нашем случае это файл с расширением .sql. Он содержит особые данные, благодаря которым можно легко воссоздать копию БД.
 +
 +Копирование базы данных может быть полезно, когда нужно выполнить: 
 +
 +  * Перенос данных на другой хостинг. Не нужно повторно создавать БД и вносить в нее все данные руками. Достаточно создать дамп и импортировать его в новый проект.
 +  * Резервное копирование. Отличный способ для экспериментов с веб-сайтом или сервером: вносите корректировки в базу данных и не бойтесь, что произойдет сбой. В случае неисправности всегда можно будет все восстановить из дампа.
 +
 +Существует несколько способов создания дампов: через консоль или с помощью [[phpmyadmin|phpMyAdmin]]. Ниже рассмотрим создание дампа БД, при помощи консольной утилиты mysqldump.
 +===== Резервирование БД MySQL утилитой mysqldump =====
 +
 +<file>
 +mysqldump --all --add-drop-table [--all-databases] --force [--no-data]
 +[-c] --password=password --user=user [база] [таблицы] > backup_file
 +</file>Пример. Бекап всех БД<file>
 +mysqldump --all-databases -c --password=password --user=root >> bak`date +%Y%m%d`.sql
 +</file>
 +Пример. Бекап только одной БД<file bash>
 +mysqldump -u root -p database > database.sql
 +mysqldump -u root -p database > database_`date "+%Y-%m-%d"`.sql
 +</file>
 +
 +
 +<panel type="danger" title=" При возникновении ошибки max_allowed_packet. Got a packet bigger than 'max_allowed_packet' bytes">
 +При возникновении ошибки max_allowed_packet бэкапить базу данных надо так задавая размера пакета
 +<file>
 +mysqldump --single-transaction --max_allowed_packet=512M -u root database > database.sql
 +</file> и на новом сервере в [[my.cnf]] задать параметр max_allowed_packet=64M и ребутнуть mysql.
 +
 +Возможно придется увеличить net_buffer_length=1000000.
 +</panel>
 +
 +Пример. Бекап некольких БД<file>
 +mysqldump -u root -p -B database1 database2 database3 > databases.sql
 +</file>
 +
 +  * -c - формировать в виде полных INSERT
 +  * --all-databases (или сокращенно -A) - бекап всех баз
 +  * --databases (или сокращенно -B) для бекапа перечисленных БД
 +  * --no-data - бэкап только структуры таблиц в базах<file>
 +mysqldump --no-data -u root -p database > database_only_scheme.sql
 +</file>
 +  * [таблицы] - бэкапить только указанные таблицы.)
 +
 +===== Восстановление БД MySQL =====
 +
 +<file>
 +mysql -u root -p [database] < database_dump.sql
 +</file>
 +Для прямой вставки из текстового файла можно воспользоваться **mysqlimport**. Для анализа структуры базы, например, списка таблиц: mysqlshow <база>.
 +
 +
 +
  

📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.

📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!