我读到过Mysql服务器创建了一个日志文件,它保存了所有活动的记录——比如什么时候执行查询以及执行什么查询。

有人能告诉我它在我的系统里的位置吗?我怎么读呢?

基本上,我需要备份数据库与不同的输入[备份之间的两个日期],所以我认为我需要使用日志文件在这里,这就是为什么我想这样做…

我认为这个日志必须以某种方式保护,因为用户名和密码等敏感信息可能会被记录[如果任何查询需要这个];所以它可以被固定,不容易被看到吗?

我有系统的根权限,我怎么能看到日志?

当我尝试打开/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

当前回答

除了上面的答案,你可以把命令行参数传递给mysqld进程来记录选项,而不是手动编辑你的conf文件。例如,要启用常规日志记录并指定一个文件:

mysqld --general-log --general-log-file=/var/log/mysql.general.log

确认上面的其他答案,mysqld——help——verbose会给你conf文件中的值(因此使用命令行选项运行general-log是FALSE);而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

其他回答

为了补充loyola的回答,值得一提的是,从MySQL 5.1开始,log_slow_queries已被弃用,取而代之的是slow-query-log

使用log_slow_queries将导致mysql服务重新启动或mysql服务启动失败

除了上面的答案,你可以把命令行参数传递给mysqld进程来记录选项,而不是手动编辑你的conf文件。例如,要启用常规日志记录并指定一个文件:

mysqld --general-log --general-log-file=/var/log/mysql.general.log

确认上面的其他答案,mysqld——help——verbose会给你conf文件中的值(因此使用命令行选项运行general-log是FALSE);而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

这里有一个简单的方法来启用它们。在mysql中,我们经常需要看到3个日志,这在任何项目开发过程中都是最需要的。

错误日志。它包含有关时发生错误的信息 服务器正在运行(服务器启动和停止) 常规查询日志。这是关于mysqld的一般记录 操作(连接,断开连接,查询) 慢查询日志。Ιt由“慢”SQL语句(如 由其名称指示)。

默认情况下,MYSQL中不启用日志文件。所有错误都将显示在syslog (/var/log/syslog)中。

要启用它们,只需遵循以下步骤:

step1:转到这个文件(/etc/mysql/conf.d/mysqld_safe_syslog.cnf),删除或注释这一行。

step2:进入mysql conf文件(/etc/mysql/my.cnf),添加如下行

要启用错误日志添加以下

[mysqld_safe]
log_error=/var/log/mysql/mysql_error.log

[mysqld]
log_error=/var/log/mysql/mysql_error.log

要启用常规查询日志,请添加以下内容

general_log_file        = /var/log/mysql/mysql.log
general_log             = 1

要启用慢速查询日志,请添加以下内容

log_slow_queries       = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes

步骤3:保存文件并使用以下命令重新启动mysql

service mysql restart

要在运行时启用日志,登录mysql客户端(mysql -u root -p)并给出:

SET GLOBAL general_log = 'ON';
SET GLOBAL slow_query_log = 'ON';

最后我想在这里提到的一件事是我从一个博客上读到的。谢谢。这对我很管用。

点击这里访问博客

MySQL参考手册:

默认情况下,所有日志文件都创建在data目录下。

检查/var/lib/mysql文件夹。

你必须在mysql中激活查询登录。

编辑/etc/my.cnf (mysqld) 日志= / tmp / mysql.log 重新启动计算机或mysqld服务 服务mysqld重启 打开phpmyadmin/任何使用mysql/mysql控制台的应用程序并运行查询 Cat /tmp/mysql.log(您应该会看到这个查询)