Spec-Zone.ru › MySQL Shell 8.4

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

  • Используйте объект shell.options для установки параметра конфигурации MySQL Shell history.sql.syslog. Инструкции по использованию этого интерфейса конфигурации см. в разделе 13.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-8.4-en/mysql-shell-sql-system-log.html

Spec-Zone.ru

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