Сделал небольшую шпаргалку и себе и коллегам. Возможно еще кому пригодится. Пожайлуста пользуйтесь.
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