Spec-Zone.ru › MySQL Shell 9.2

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 Shell history.sql.syslog. Инструкции по использованию этой команды см. в разделе 14.4 «Настройка параметров оболочки MySQL Shell».

  • Используйте объект shell.options для установки параметра конфигурации оболочки MySQL Shell history.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.
https://docs.oracle.com/cd/E17952_01/mysql-shell-9.2-en/mysql-shell-sql-system-log.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API