我读到Mysql服务器创建了一个日志文件,其中保存了所有活动的记录-比如查询执行的时间和内容。
有人能告诉我它在我的系统中的什么位置吗?我该怎么读呢?
基本上,我需要在两个日期之间使用不同的输入备份来备份数据库,所以我认为我需要在这里使用日志文件,这就是为什么我要这样做的原因…
我认为必须以某种方式保护这个日志,因为如果任何查询需要,用户名和密码等敏感信息可能会被记录下来;所以它是否可以得到保护,而不容易被看到?
我拥有系统的root访问权限,如何查看日志?
当我尝试打开/var/log/mysql.log时,它是空的。
这是我的配置文件:
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
log = /var/log/mysql/mysql.log
binlog-do-db=zero
user = mysql
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
skip-external-locking
bind-address = 127.0.0.1
#
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
general_log_file = /var/log/mysql/mysql.log
general_log = 1
发布于 2016-08-22 19:02:08
除了上面的答案之外,您还可以将命令行参数传递给mysqld进程以记录选项,而不是手动编辑conf文件。例如,要启用常规日志记录并指定文件:
mysqld --general-log --general-log-file=/var/log/mysql.general.log
确认上面的其他答案后,mysqld --help --verbose
给出了来自conf文件的值(因此使用命令行选项general-log运行是假的);而mysql -se "SHOW VARIABLES" | grep -e log_error -e general_log
给出了:
general_log ON
general_log_file /var/log/mysql.general.log
对错误日志使用更紧凑的语法:
mysqld --general-log --general-log-file=/var/log/mysql.general.log --log-error=/var/log/mysql.error.log
发布于 2016-09-09 22:54:33
为了补充loyola的回答,值得一提的是,从MySQL 5.1开始,log_slow_queries
已被弃用,并被slow-query-log
取代
使用log_slow_queries
将导致您的service mysql restart
或service mysql start
失败
发布于 2015-04-15 21:27:46
shell> mysqladmin flush-logs
shell> mv host_name.err-old backup-directory
https://stackoverflow.com/questions/5441972
复制相似问题