Как импортировать и экспортировать базы данных в MySQL или MariaDB

Импорт и экспорт – это фундаментальные процессы, в которых должен хорошо разбираться каждый системный администратор и разработчик. Импорт Базы данных Mysql также известен как восстановление базы данных из ежедневной, еженедельной или любой резервной копии, которую мы имеем на нашем сервере. Экспорт рассматривается как сброс существующей базы данных для резервного копирования перед любым обновлением MySQL или Mariadb или регулярным процессом резервного копирования.

В этом руководстве мы будем использовать ОС Ubuntu, но вы можете выбрать любую ОС Linux по своему усмотрению. Команды MySQL одинаковы. Давайте приступим!

Обновление системы

Мы предполагаем, что у вас свежеустановленная Ubuntu. Перед установкой MySQL мы обновим системные пакеты до последней версии. Для этого выполните следующие команды:

sudo apt update -y && sudo apt upgrade -y

Установите сервер баз данных MySQL

Для этого поста мы установили и использовали Сервер баз данных MySQL вместо MariaDB. Обратите внимание, что вы также можете использовать MariaDB с помощью тех же команд. На всякий случай, если вы хотите установить и использовать MariaDB, вы можете установить его с помощью команды ниже:

sudo apt install mariadb-server -y

Поскольку мы будем использовать MySQL, команда для установки будет следующей:

sudo apt install mysql-server -y

После установки запустите и включите службу MySQL:

sudo systemctl start mysql && sudo systemctl enable mysql

Чтобы проверить статус службы, выполните следующую команду:

sudo systemctl status mysql

Вы должны получить следующий результат:

root@host:~# sudo systemctl status mysql
● mysql.service - MySQL Community Server
     Loaded: loaded (/usr/lib/systemd/system/mysql.service; enabled; preset: enabled)
     Active: active (running) since Wed 2024-12-03 04:58:28 CST; 43s ago
   Main PID: 393089 (mysqld)
     Status: "Server is operational"
      Tasks: 38 (limit: 4613)
     Memory: 362.5M (peak: 377.0M)
        CPU: 2.423s
     CGroup: /system.slice/mysql.service
             └─393089 /usr/sbin/mysqld

Создайте тестовую базу данных и пользователя

Сначала войдите в Терминал MySQL, выполнив следующую команду:

mysql

После входа в систему вы увидите следующее окно:

root@host:~# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.40-0ubuntu0.24.04.1 (Ubuntu)
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

Чтобы создать базу данных и пользователя, необходимо выполнить следующие команды в терминале MySQL:

CREATE DATABASE dbtest;
CREATE USER 'dbuser'@'localhost' IDENTIFIED BY 'StrongPasswordHere';
GRANT ALL ON dbtest.* TO 'dbuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

Экспорт базы данных

Как мы уже говорили в первом абзаце, экспорт базы данных считается дампом базы данных. Дамп базы данных представляет собой файл .sql, который содержит таблицы и данные базы данных. Чтобы создать дамп базы данных, необходимо следовать следующему синтаксису:

mysqldump -u username -p database_name > database_dump.sql

Основная команда – mysqldump, параметры – -u для имени пользователя и -p для пароля. Наиболее важной частью команды является знак >, который говорит о том, что это экспорт (дамп) базы данных. Остальное – это имя базы данных и имя файла dump, которое вы указываете.

Итак, точная команда в нашем случае будет следующей:

mysqldump -u dbuser -p dbtest > dbtest.sql

После этого вы можете перечислить содержимое каталога для проверки наличия файла базы данных:

ls -al | grep dbtest.sql

Вы должны получить следующий результат:

root@host:~# ls -al | grep dbtest.sql
-rw-r--r--  1 root root 1267 Dec  4 07:47 dbtest.sql

Импортирование базы данных

Импорт базы данных MySQL осуществляется из дампа существующей базы данных, поэтому нам необходимо вернуться к существующей базе данных, независимо от того, пуста она или нет. Если база данных не пуста, данные будут перезаписаны при импорте MySQL.

Чтобы импортировать базу данных MySQL, необходимо следовать приведенному ниже синтаксису:

mysql -u username -p database_name < database_dump_toimport.sql

Команда аналогична экспорту, с двумя отличиями. Первое – это слово mysql вместо mysqldump, а второе по важности отличие – это знак <, который говорит нам о том, что мы импортируем дамп базы данных в базу данных MySQL.

Итак, чтобы импортировать базу данных, которую мы загрузили на предыдущем шаге, нам нужно использовать приведенную ниже команду:

mysql -u dbuser -p dbtest < dbtest.sql
Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Похожие статьи

Комментарии (0)