+
バイナリログで任意の時点にロールバックlog_output
で指定する。FILEかTABLEを指定できる。
# my.cnf
[mysqld]
...
# ファイルに出力
log_output=FILE
log_warnings
またはlog_error_verbosity
(5.7系)で指定する。
ref. ttps://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_log_warnings
Assigning a value to log_warnings assigns a value to log_error_verbosity and vice versa
deepl.comで翻訳「log_warnings に値を代入すると log_error_verbosity にも値が代入される、逆も同様」
※ log_warnings
は0から2、log_error_verbosity
は1から3の値をとる。どちらも最小値はerrorのみを出力する。errorを出力しない設定はない(errorは必ず出力される)。
log_warnings
のデフォルトは2、log_error_verbosity
のデフォルトは3。
Setting log_warnings=0 is equivalent to log_error_verbosity=1 (errors only).
Setting log_warnings=1 is equivalent to log_error_verbosity=2 (errors, warnings).
Setting log_warnings=2 (or higher) is equivalent to log_error_verbosity=3 (errors, warnings, notes), and the server sets log_warnings to 2 if a larger value is specified.
ref. https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_log_warnings
デフォルトでlog_error
に指定されたファイルに出力される。
ファイルのパスはmy.cnfで指定できる。
[mysqld]
...
error_log=/var/log/mysql/error.log
例えば以下の処理はエラーログに出力されない。
$ mysqldump -u root -p foo > foo.sql
Enter password:
mysqldump: Got error: 1049: Unknown database 'foo' when selecting the database
一般ログはすべての処理が出力される。
デフォルトでは無効なので有効にする必要がある
# my.cnf
[mysqld]
...
# general_log https://dev.mysql.com/doc/refman/5.6/ja/query-log.html
general_log=1
general_log_file=/var/log/mysql/general.log
クエリエラーを含めて、すべてのクエリが出力される。 接続情報も出力される。 ただしシンタックスエラーは表示されない。
' fooテーブルは存在しない
mysql> select * from foo;
ERROR 1146 (42S02): Table 'sample.foo' doesn't exist
mysql> sect * from sample;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sect * from sample' at line 1
上記は2023-02-04T07:51:05.233973Z 5 Query select * from foo
として出力さえる。
接続失敗エラーのログ。
2023-02-07T06:06:42.239948Z 3 Connect root@localhost on using Socket
2023-02-07T06:06:42.240033Z 3 Connect Access denied for user 'root'@'localhost' (using password: YES)
2023-02-07T06:06:51.523982Z 4 Connect admin@localhost on using Socket
2023-02-07T06:06:51.524021Z 4 Connect Access denied for user 'admin'@'localhost' (using password: YES)
# my.cnf
[mysqld]
...
# slow query log
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow.log
long_query_time=0.25
監査ログはMySQLの https://dev.mysql.com/doc/refman/5.6/ja/audit-log.html?utm_source=pocket_reader に記載されている機能を使用しているよう
AuditはEnterpriseのみ使用できる。
MySQL Enterprise Audit is a new feature for security and compliance. It's not included in the Open Source / Community edition.
https://dba.stackexchange.com/questions/178213/mysql-audit-and-general-log
[mysqld]
...
# output
log_output=FILE
# error log
log-error=/var/log/mysql/error.log
# general_log https://dev.mysql.com/doc/refman/5.6/ja/query-log.html
general_log=1
general_log_file=/var/log/mysql/general.log
# slow query log
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow.log
long_query_time=0.25