Перейти к основному содержанию

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

MySQL 8

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

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

sql

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

sql

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

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

sql

Восстанавливать базу будем в консоли. Входим в командную оболочку 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

sql

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

sql

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

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

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

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

sql

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

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

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;

sql

Ссылки

При восстановлении базы MySQL пропадают эмодзи

Теги

 

Похожие материалы

Seafile — установка на Ubuntu 18.04 LTS

Seafile — это личное облачное хранилище для хранения данных в стиле Dropbox. Сегодня мы развернём это хранилище на виртуальном сервере. В качестве гипервизора у нас ESXi 6.7 Update 1.

Перемещение базы данных MySQL 8 в Ubuntu 18.04 LTS

База данных MySQL 8 при установке на Ubuntu по умолчанию пишется в папку /var/lib/mysql. Со временем база растёт и поднимается вопрос переноса её на другой раздел диска. Перенесём базу данных в /u01/mysql/mysql.

Теги