Spec-Zone .ru
спецификации, руководства, описания, API

4.5.1.3. Журналирование mysql

На Unix mysql клиент регистрирует операторы, выполняемые в интерактивном режиме к файлу истории. По умолчанию этот файл называют .mysql_history в Вашем корневом каталоге. Чтобы определить различный файл, установите значение MYSQL_HISTFILE переменная окружения.

Как Журналирование Происходит

Журналирование оператора происходит следующим образом:

Следовательно, входной оператор, который охватывает многократные строки, может быть зарегистрирован дважды. Рассмотрите этот ввод:

mysql> SELECT    -> 'Today is'    -> ,    -> CONCAT()    -> ;

В этом случае mysql регистрирует "ИЗБРАННОЕ", "'Сегодня is'",",", "CONCAT ()", и";" строки, поскольку это читает их. Это также регистрирует полный оператор после отображения SELECT\n'Today is'\n,\nCURDATE() к SELECT 'Today is' , CURDATE(), плюс разделитель. Таким образом эти строки появляются в зарегистрированном выводе:

SELECT'Today is',CURDATE();SELECT 'Today is' , CURDATE();

С MySQL 5.6.8 mysql игнорирует для того, чтобы зарегистрировать операторы целей, которые соответствуют любой образец в "проигнорировать" списке. По умолчанию список образца "*IDENTIFIED*:*PASSWORD*", проигнорировать операторы, которые обращаются к паролям. Сопоставление с образцом не является чувствительным к регистру. В пределах образцов два символа являются особенными:

Чтобы определить дополнительные образцы, используйте --histignore опция или набор MYSQL_HISTIGNORE переменная окружения. (Если оба определяются, значение опции имеет приоритет.) Значение должно быть разделенным от двоеточия списком одного или более образцов, которые добавляются к списку образца значения по умолчанию.

Образцы, определенные на командной строке, возможно, должны были бы быть заключены в кавычки или выйтись, чтобы препятствовать тому, чтобы Ваш интерпретатор команд обработал их особенно. Например, чтобы подавить журналирование для UPDATE и DELETE операторы в дополнение к операторам, которые обращаются к паролям, вызовите mysql как это:

shell> mysql --histignore="*UPDATE*:*DELETE*"

Управление Файлом Истории

.mysql_history файл должен быть защищен с рестриктивным режимом доступа, потому что уязвимая информация могла бы быть записана ему, такие как текст SQL-операторов, которые содержат пароли. См. Раздел 6.1.2.1, "Направляющие линии Конечного пользователя для Безопасности Пароля".

Если Вы не хотите поддерживать файл истории, сначала удалите .mysql_history если это существует. Затем используйте любой из следующих методов, чтобы препятствовать тому, чтобы это было создано снова: