Найти тему

Восстановление базы MySQL из резервной копии

Сегодня у нас простой кейс. Есть резервная копия БД MySQL 8 в виде файла SQL. База крутилась раньше на сервере Windows. Необходимо выполните восстановление базы данных на сервере с ОС Ubuntu Server 22.04 и СУБД MariaDB 10.

Сперва нам нужно перенести файлик резервной копии SQL на сервер, на котором будем выполнять восстановление. WinSCP в помощь.

-2

Файл internet-lab.sql скопировался в домашнюю директорию пользователя.

-3

Файл создаётся от имени пользователя, под которым логинились. В зависимости от того, как принято в вашей инфраструктуре, следует дать права на файл тому пользователю, под которым будем выполнять восстановление. У меня всё просто, я буду выполнять восстановление от рута, но для наглядности тоже сменю права.

cd /home/ovel
chown root\: ./internet-lab.sql
-4

Восстанавливать базу будем в консоли. Входим в командную оболочку mysql, нужно будет указать пароль.

mysql -u root -p

Создаём базу данных и пользователя.

CREATE DATABASE `internet-lab` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE USER 'ilab'@'localhost' identified by 'set_your_password';
GRANT ALL PRIVILEGES ON `internet-lab`.* TO `ilab`@localhost;
\q
-5

Перед тем как приступить непосредственно к восстановлению, проверим файл SQL. Формат SQL представляет из себя набор TSQL инструкций, которые выполняют создание таблиц, индексов и загрузку данных. Если в SQL файле есть инструкция USE <имя базы>, то восстановление будет производиться в ту базу, которая указана в данной инструкции.

-6

Поискал по файлу, инструкции USE нет. Если бы была, я бы её закомментировал.

Восстановим базу, выполняем в UNIX-shell:

mysql -u root -p internet-lab < /home/ovel/internet-lab.sql

При отсутствии инструкции USE восстановление будет производиться в указанную в команде базу.

-7

База восстановлена.

Проверим размер базы:

mysql -u root -p

SELECT table_schema "DB Name",
ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB"
FROM information_schema.tables
GROUP BY table_schema;
-8

Источник:

Восстановление базы MySQL из резервной копии | internet-lab.ru

💰 Поддержать проект

Если вам понравилась статья, то ставьте 👍🏻 каналу. Пишите комментарии, задавайте вопросы, подписывайтесь.