MySQL
Базы данных хранятся в /var/lib/mysql
sudo grep -R 'datadir' /etc/mysql/
Настройка сессии
Уровень изолированности | Черновое чтение | Неповторяющееся чтение | Фантомное чтение | Блокировка чтения |
READ UNCOMMITTED | Да | Да | Да | Нет |
READ COMMITTED | Нет | Да | Да | Нет |
REPEATABLE READ | Нет | Нет | Да | Нет |
SERIALIZABLE | Нет | Нет | Нет | Да |
Можно установить на уровне сессии
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
Взаимоблокировки: Innodb отказывает самой короткой транзакции
цели в трех ключевых областях: задержка, доступность и ошибки
Performance Schema
Это отдельный engine Проверить факт наличия:
SHOW ENGINES;
+--------------------+---------+----------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------+--------------+------+------------+
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
включен или нет:
SHOW VARIABLES LIKE 'performance_schema';
Переменные окружения
Просмотр
SHOW VARIABLES LIKE 'performance_schema';
Поддерживает %
Настройки
Настройка при запуске
shell> mysql --max_allowed_packet=16M
Настройка при работе
mysql>SET GLOBAL max_connections = 1000; - потеря при перезагрузке
mysql>SET PERSIST max_connections = 1000; - сохранение после перезагрузки
Инструменты (setup_instruments) пишут в потребителя (таблицы данных, ).
Схемой sys представления и хранимые подпрограммы над performance_schema.
включение инструментов вызывает дополнительный код
statement/sql/select;
wait/synch/mutex/innodb/autoinc_mutex
Крайний левый - тип, далее слева направо подсистемы от общей к частной.
Дайджест — агрегирование запросов путем удаления из них вариаций
Структура таблиц потребителей:
- *_current — события, происходящие на сервере в данный момент;
- *_history — последние 10 завершенных событий на поток;
- *_history_long — последние 10 000 завершенных событий на поток по всему миру
Ограничения:
- Инструментарий должен поддерживаться компонентом MySQL.
- Она собирает данные только после включения конкретного инструмента и потребителя.
- Трудно освободить память. Даже если позже отключите определенные инструменты или потребители, память не будет освобождена, пока вы не перезапустите сервер.
Настройка инструментов мониторинга
Список инструментов: https://mariadb.com/kb/en/performance-schema-setup_instruments-table/
Таблица setup_instruments - включенные инструменты.
Структура:
NAME | Название инструмента |
ENABLED | Включен или нет |
TIMED | Планировщик. Если disabled, работать не будет |
CRUD db, tables, users
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newPassword';
CREATE DATABASE IF NOT EXISTS my_timeweb;
DROP DATABASE IF EXISTS my_timeweb;
CREATE USER 'sub_user'@'10.0.%' IDENTIFIED BY 'password';
SELECT * FROM mysql.user;
DROP USER 'user'@'localhost';
Привилегии:
ALTER | Менять структуру таблицы или БД |
CREATE | Создавать новые БД и таблицы |
DELETE | Удалять строки в таблице |
INSERT | Добавлять строки в таблицу |
SELECT | Читать данные из таблицы |
UPDATE | Обновлять данные в таблице |
DROP | Удалять БД |
ALL PRIVILEGES | все, кроме GRANT; |
USAGE PRIVILEGES | никаких привилегий; |
FILE | разрешает читать файлы на сервере; |
INDEX | создавать индексы для таблиц; |
DROP | удалять таблицы; |
EVENT | обработка событий; |
TRIGGER | создание триггеров. |
Привилегия на действия
GRANT | изменять права пользователей; |
SUPER | суперпользователь; |
PROCESS | получение информации о состоянии MySQL; |
RELOAD | позволяет перезагружать таблицы привилегий; |
SHUTDOWN | позволяет отключать или перезапускать базу данных; |
SHOW DATABASES | просмотр списка баз данных; |
LOCK TABLES | блокирование таблиц при использовании SELECT; |
REFERENCES | создание внешних ключей для связывания таблиц; |
CREATE USER | создание пользователей; |
GRANT SELECT, INSERT ON my_timeweb.* TO 'user'@'localhost'; из-под root
GRANT ALL PRIVILEGES ON my_timeweb.* TO 'user'@'localhost';
REVOKE SELECT, INSERT ON my_timeweb.* FROM 'user'@'localhost';
применение изменений
flush privileges;
статус, приложения
mysqladmin version
mysqlshow mysql - список таблиц БД mysql
mysql_secure_installation
mysqladmin - административное
mysqlcheck - проверка
mysqldump - сохранение
mysqlimport - импорт текстовых файлов в нужную таблицу
mysqlpump - экспорт базы в sql файл
mysqlslap - статус загрузки сервера
--print-defaults выводит конфиг по умолчанию
No Comments