13.3 Логирование запросов SQL для пользователя
Запросы SQL, которые вы выполняете в режиме SQL оболочки MySQL Shell, могут быть отправлены в системную службу ведения журналов операционной системы. В Unix это syslog; в Windows это журнал событий Windows. Место назначения, где отображаются записанные сообщения, зависит от системы. В Linux место назначения часто является файлом /var/log/messages.
При активации системного логирования для запросов SQL в системную службу ведения журналов записываются следующие элементы:
Запросы SQL, которые вы выполняете интерактивно в режиме SQL оболочки MySQL Shell.
Отдельные запросы SQL, которые вы выполняете, введя их сразу после команды
\sql, находясь в режиме JavaScript или Python оболочки MySQL Shell.Примеры команды
\source, которые вы выполняете интерактивно в режиме SQL оболочки MySQL Shell.
Следующие элементы исключаются и не записываются в системную службу ведения журналов:
Содержимое файла сценария, который вы выполняете с помощью команды
\source. Только сама команда\sourceзаписывается в системную службу ведения журналов.Запросы SQL, которые сама оболочка MySQL Shell выполняет в ходе операций AdminAPI. Вы можете записать их в файл журнала приложения MySQL Shell, как описано в разделе 13.4 «Логирование запросов SQL в оболочке MySQL Shell».
Запросы SQL, которые были бы исключены из истории кода оболочки MySQL Shell, как указано в параметре конфигурации оболочки MySQL Shell
history.sql.ignorePatternили параметре командной строки--histignore(который устанавливает значениеhistory.sql.ignorePatternтолько для текущей сессии).
Чтобы отправить запросы SQL, которые вы выполняете в режиме SQL оболочки MySQL Shell, в системную службу ведения журналов операционной системы, выберите один из следующих вариантов:
Используйте параметр командной строки
--syslogпри запуске оболочки MySQL Shell.Используйте команду оболочки MySQL Shell
\optionдля установки параметра конфигурации оболочки MySQL Shellhistory.sql.syslog. Инструкции по использованию этой команды см. в разделе 14.4 «Настройка параметров оболочки MySQL Shell».Используйте объект
shell.optionsдля установки параметра конфигурации оболочки MySQL Shellhistory.sql.syslog. Инструкции по использованию этого интерфейса конфигурации см. в разделе 14.4 «Настройка параметров оболочки MySQL Shell».
Системное логирование запросов SQL происходит только при запуске оболочки MySQL Shell в интерактивном режиме, т.е. при обычном запуске или запуске с параметром --interactive. Оно не происходит, если при запуске используются параметры --execute или --file для выполнения mysqlsh в пакетном режиме для обработки команды или файла.
Формат сообщения журнала
Сообщение журнала для запроса SQL форматируется как последовательность пар ключ-значение, разделенных пробелом. Пары ключ-значение следующие:
- SYSTEM_USER =
Имя пользователя операционной системы, или
--, если это имя пользователя неизвестно.- MYSQL_USER =
Имя пользователя MySQL, или
--, если это имя пользователя неизвестно.- CONNECTION_ID =
Идентификатор подключения оболочки MySQL Shell.
- DB_SERVER =
Имя хоста сервера, или
--, если имя хоста неизвестно.- DB =
База данных по умолчанию, или
--, если база данных не выбрана.- QUERY =
Текст запроса SQL, который записывается в журнал.
Сообщение журнала усекается до 1024 байт, если оно превышает эту длину.
Вот пример выходных данных, сгенерированных в Linux с помощью --syslog. Эти выходные данные отформатированы для удобства чтения; каждое записанное сообщение на самом деле занимает одну строку.
Mar 1 17:35:33 myhost mysqlsh[33060]:
SYSTEM_USER=hanna_j MYSQL_USER=hanna
CONNECTION_ID=14 DB_SERVER=localhost DB='--'
QUERY='create table test.test (c int, my_row_id BIGINT AUTO_INCREMENT INVISIBLE PRIMARY KEY);'
© 2025 Oracle
Licensed under the GPLv2 License.