Найти тему
Игорь Сотников

Основные команды MariaDB

Сделал небольшую шпаргалку и себе и коллегам. Возможно еще кому пригодится. Пожайлуста пользуйтесь.

1.Подключение к СУБД.

Подключение к СУБД можно выполнить несколькими способами, непосредственно на хосте или с другого хоста имеющего сетевую связанность.

Для подключения на локальном хосте необходимо иметь Учетную запись вида user@localhost и права для подключения. Подключится мы можем к консоли СУБД или непосредственно к определенной Базе данных.

mysql -uuser -p'Pa$$word' - зайти в консоль

mysql -uuser -p'Pa$$word' -D NameBD - зайти в консоль и определенную БД

Для подключения с удаленного хоста необходимо иметь Учетную запись вида user@% или user@ip_host - , где ip_host - ip адрес хоста с которого мы хотим подключится. И утилиту mysql.

mysql -uuser -p'Pa$$word' -h192.168.30.1

mysql -uuser -p'Pa$$word' -h192.168.30.1 -D NameDB зайти в консоль с удаленного хоста в БД

mysql -uuser -p'Pa$$word' -h192.168.30.1 -P 3307 зайти в консоль с удаленного хоста , если СУБД на нестандартном порте или перед кластером находится прокси.

'Pa$$word' - пароль после ключа -p указывать не обязательно, если не указывать , то система попросит ввод сразу после команды на выполнение.

2. Список Пользователей.

Чтобы нам осмотрется и получить список всех пользователей на данной СУБД.

SELECT Host, User FROM mysql.user;

3. Список Баз данных.

Аналогичное действие по списку БД

SHOW DATABASES;

4. Работа с БД.

CREATE DATABASE test_bd; - создание БД

SHOW VARIABLES LIKE 'collation%'; - Узнать коллейшен БД

RENAME DATABASE old_database_name TO new_database_name; - переименование БД

DROP DATABASE test_bd; - удаление БД

Как посмотреть размер БД

SELECT table_schema AS "Имя БД",
ROUND(SUM(data_length + index_length) / 1024 / 1024 / 1024, 2) AS "Размер в Гб"
FROM information_schema.TABLES
GROUP BY table_schema;

Как посмотреть размер таблиц для каждой БД

SELECT table_name AS "Имя таблицы",
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size in (MB)"
FROM information_schema.TABLES
WHERE table_schema = "wpfc_options"
ORDER BY (data_length + index_length) DESC;

mysqldump -uuser -p nameDB > nameDB.sql - снятие дампа на локальной машине, nameDB.sql - удобное имя файла дампа.

mysqldump -uuser -p -h192.168.30.1 nameDB > nameDB.sql - снятие дампа на удаленной машине, дамп появится на машине с которой исполняется команда. Можно указать путь до файла вместо имени файла.

mysql -uuser -p nameDB < nameDB.sql - востановление из дампа на локальной машине

mysql -uuser -p -h192.168.30.1 nameDB < nameDB.sql - востановление из дампа на удаленной машине.

5. Работа с Пользователями

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

CREATE USER 'user'@'%' IDENTIFIED BY 'Pa$$word'; - Создание пользователя для удаленного подключения с любого хоста.

CREATE USER 'user'@'localhost' IDENTIFIED BY 'Pa$$word'; - Создание пользователя для подключения с локального хоста.

Выдача прав доступа.

GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' ;

,где ALL - это тип привелегий (максимальные, список всех можно посмотреть в официальных источниках)

"*" - Имя базы данных на которую выдаются права или "*" если на все сразу.

Про пользователя локального удаленного писал выше.

Права пользователя можно посмотреть командой:

SHOW GRANTS FOR 'user'@'%'; - пользователь для удаленного подключения.

SHOW GRANTS FOR 'user'@'localhost'; - пользователь для локального подключения.

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

ALTER USER 'user'@'%' IDENTIFIED BY 'Pa$$word';

Возможно в разных версиях и сборках mysql\mariaDB выдадут ошибки из за разночтений минимальных в синтаксисе.

В данной статье не было цели охватить все много образие команд. Цель была сконцентрировать наиболее используемые команды в повседневной работе.

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

DROP USER 'user'@'localhost';

#devops #mariaDB #mysql #СУБД #OpenSource