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 Shellhistory.sql.syslog. Инструкции по использованию этой команды см. в разделе 13.4 «Настройка параметров MySQL Shell».Используйте объект
shell.optionsдля установки параметра конфигурации MySQL Shellhistory.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.