Skip to main content

Справочник по MySQL / MariaDB

Основные команды для администрирования и работы с базами данных MySQL и MariaDB.

Установка и настройка

Шаг 1: Установка сервера

Для Debian/Ubuntu, MariaDB является заменой MySQL по умолчанию.

sudo apt update && sudo apt install -y mariadb-server

Шаг 2: Безопасная настройка

После установки запустите скрипт безопасной настройки. Он поможет установить пароль для root, удалить анонимных пользователей и тестовую базу данных.

sudo mysql_secure_installation

Шаг 3: Подключение к консоли

Для подключения к консоли MySQL/MariaDB используйте следующую команду.

sudo mysql -u root -p

Управление базами данных

Создание БД (`CREATE DATABASE`)

Команда для создания новой базы данных. Рекомендуется сразу указывать кодировку `utf8mb4` для полной поддержки Unicode.

CREATE DATABASE my_new_app CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Просмотр всех БД

SHOW DATABASES;

Удаление БД (`DROP DATABASE`)

Внимание! Команда необратима.

DROP DATABASE my_new_app;

Управление пользователями

Создание пользователя

Создает нового пользователя с паролем. `%` означает, что пользователь сможет подключаться с любого хоста. Для большей безопасности можно указать `localhost` или конкретный IP.

CREATE USER 'newuser'@'%' IDENTIFIED BY 'a_very_strong_password';

Предоставление прав

Дает пользователю все права на определенную базу данных.

GRANT ALL PRIVILEGES ON my_new_app.* TO 'newuser'@'%';

Применение изменений

После создания пользователя и выдачи прав необходимо обновить привилегии.

FLUSH PRIVILEGES;

Работа с данными (SQL)

Основные команды для взаимодействия с таблицами и данными внутри базы. Все команды выполняются в консоли MySQL.

Выбор базы данных и просмотр таблиц

Сначала выберите базу данных для работы:


USE my_new_app;

Посмотреть все таблицы в текущей базе:

SHOW TABLES;

Посмотреть структуру конкретной таблицы:

DESCRIBE users;

Поиск и изменение данных

Найти всех пользователей с именем 'Ivan':

SELECT * FROM users WHERE name = 'Ivan';

Изменить email пользователя с ID 123:

UPDATE users SET email = 'new.email@example.com' WHERE id = 123;

Сохранение результатов запроса в файл

Позволяет экспортировать результат выполнения запроса `SELECT` в текстовый файл на сервере.

Важно: По умолчанию из соображений безопасности MySQL может ограничивать каталоги для экспорта. Вам может потребоваться настроить переменную secure_file_priv в конфигурационном файле my.cnf.

SELECT id, name, email FROM users WHERE registration_date > '2023-01-01'
INTO OUTFILE '/var/lib/mysql-files/recent_users.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

Проверка и ремонт таблиц

Проверка таблицы

Команда для проверки таблицы или таблиц на наличие ошибок.

CHECK TABLE my_table, another_table;

Ремонт таблицы

Пытается исправить поврежденную таблицу. В основном эффективно для старого движка MyISAM. Для InnoDB лучшей стратегией является восстановление из резервной копии.

REPAIR TABLE my_table;

Резервное копирование и восстановление

Эти команды выполняются из обычной командной строки Linux, а не из консоли MySQL.

Резервное копирование (Backup)

`mysqldump` создает текстовый файл с SQL-командами для воссоздания базы.

sudo mysqldump -u root -p my_database_name > backup.sql

Восстановление (Restore)

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

1. Создаем пустую базу в консоли MySQL:

CREATE DATABASE my_database_name;

2. Импортируем данные в командной строке Linux:

sudo mysql -u root -p my_database_name < backup.sql