我想在windows和linux上启用mysql服务器的审计。我正在为一个日志分析器工具从mysql服务器收集日志。因此,我首先需要知道如何启用对所有可能的查询(如错误、警告、成功和信息)的审核。
1) 如何在windows和linux下的mysql(任何版本)中启用审计。
2) 如何将日志发送到syslog(unix)和eventlog(windows)?
有人能分享一下上述问题的分步解决方案吗?
我在my.ini中添加了下面几行,但是由于下面几行的原因,我可以重新启动mysql服务器。如果删除这些行并重新启动,服务器将成功重新启动。
log_output="FILE"
general_log=1
general_log_file="E:\Logs\my-sql-general-log.log"
slow-query-log=1
slow_query_log_file="my-sql-slow-log.log"
long_query_time=10
我只尝试了一般日志,面临同样的问题。我还尝试了general\u log=on和general\u log=1。找不到变化。
我在Windows10和MySQLServer5.0上尝试了上述更改
编辑1:
我在my.ini中添加了下面的行
log="C:/Program Files/MySQL/MySQL Server 5.0/logs/general-log.log"
添加上述行之后,查询日志被写入文件中。错误仍然不会写入,也不会转发到事件查看器。
编辑2:
1) 我在我的windows机器中向my.ini添加了以下行
log="C:/Program Files/MySQL/MySQL Server 5.0/logs/my-sql-general-log.log"
log_bin="C:/Program Files/MySQL/MySQL Server 5.0/logs/my-sql-bin-log.log"
log_error="C:/Program Files/MySQL/MySQL Server 5.0/logs/my-sql-error-log.log"
log_slow_queries
long_query_time = 1
在这种情况下,所有查询都会写入常规日志,但错误不会写入错误日志。在错误日志中,只写入mysql服务的启动/停止日志。
(i) 如何将“未选择数据库”或“表不存在”等错误写入错误日志文件?
(ii)如果在my.ini中添加log output=table,mysql服务将不会重新启动。是什么导致了这个问题?它在linux中运行良好。
(iii)如何将这些日志发送到eventviewer?
2) 我在我的linux机器中向my.cnf添加了以下几行
[mysqld_safe]
syslog
[mysqld]
general_log_file = /var/log/mysql/mysql.log
general_log = 1
log_error = /var/logs/mysql/error.log
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes
log_bin = /var/log/mysql/mysql-bin.log
添加这些行之后,常规日志将被发送到syslog服务器,而不是错误日志。
(i) 如何将“未选择数据库”或“表不存在”等错误写入错误日志文件并发送到syslog服务器?
(二)我也试过了 log-output=TABLE
但当日志写入表时,它不会被发送到syslog服务器。如果日志被写入到表中,如何将日志发送到syslog服务器?
一般日志如下所示-
181017 11:46:41 1 Connect root@localhost on
1 Query set autocommit=1
1 Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
1 Query SHOW SESSION VARIABLES LIKE 'lower_case_table_names'
1 Query SELECT current_user()
1 Quit
有没有办法让日志写得像下面这样?
Time User ThreadID Command Argument
181017 11:46:41 root@localhost 1 Connect root@localhost on
181017 11:46:41 root@localhost 1 Query set autocommit=1
181017 11:46:41 root@localhost 1 Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
181017 11:46:41 root@localhost 1 Query SHOW SESSION VARIABLES LIKE 'lower_case_table_names'
181017 11:46:41 root@localhost 1 Query SELECT current_user()
181017 11:46:41 root@localhost 1 Quit
编辑3:我可以通过修改rsyslog.conf文件将所有日志发送到syslog,但仍然无法将常规和慢速查询日志转发到windows eventlog。
暂无答案!
目前还没有任何答案,快来回答吧!