我读到过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

当前回答

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

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

其他回答

在我的(我已经安装了LAMP) /etc/mysql/my.cnf文件中,我在[mysqld]部分中发现了以下注释行:

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

我必须以超级用户的身份打开这个文件,使用终端:

sudo geany /etc/mysql/my.cnf

(我更喜欢用Geany而不是gedit或VI,没关系)

我只是取消评论他们&保存文件,然后重新启动MySQL

sudo service MySQL restart

运行几个查询,打开上面的文件(/var/log/mysql/mysql.log),日志就在那里:)

MySQL日志由全局变量决定,例如:

Log_error表示错误消息日志; General_log_file用于通用查询日志文件(如果通过general_log启用); Slow_query_log_file用于慢查询日志文件(如果由slow_query_log启用);

要查看设置和它们的位置,运行shell命令:

mysql -se "SHOW VARIABLES" | grep -e log_error -e general_log -e slow_query_log

在终端上执行此命令,输出错误日志的值。

mysql -e "SELECT @@GLOBAL.log_error"

实时读取错误日志文件内容,使用命令:

sudo tail -f $(mysql -Nse "SELECT @@GLOBAL.log_error")

注意:完成时按Control-C

当启用常规日志时,尝试:

sudo tail -f $(mysql -Nse "SELECT CONCAT(@@datadir, @@general_log_file)")

要使用mysql的密码访问,添加-p或-pMYPASS参数。为了记住它,您可以在~/.my.cnf中配置它,例如:

[client]
user=root
password=root

这样下次就能记住了。

以root用户输入MySQL/MariaDB服务器命令行工具

设置文件路径(您可以将general.log替换为您选择的文件名)。

SET GLOBAL general_log_file='/var/log/mysql/general.log';

设置日志文件格式

SET GLOBAL log_output = 'FILE';

启用服务器常规日志

SET GLOBAL general_log = 'ON';

检查全局配置变量中的配置。

显示变量“general_log%”;

输入exit离开MySQL命令行和Tail您的查询by

-f /var/log/mysql/general.log

or

少/var/log/mysql/general.log

禁用服务器常规日志

SET GLOBAL general_log = 'OFF';

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

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

shell> mysqladmin flush-logs


shell> mv host_name.err-old backup-directory