我已经读过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
8 回答
这是启用它们的简单方法 . 在mysql中,我们需要经常看到3个日志,这些日志在任何项目开发期间都是最需要的 .
The Error Log
. 它包含有关服务器运行时发生的错误的信息(也包括服务器启动和停止)The General Query Log
. 这是mysqld正在做什么的一般记录(连接,断开连接,查询)The Slow Query Log
. 它由"slow" SQL语句组成(如其名称所示) .默认情况下,MYSQL中未启用任何日志文件 . 所有错误都将显示在syslog中 . (/ var / log / syslog)
要启用它们,请按照以下步骤操作
step1: 转到此文件( /etc/mysql/conf.d/mysqld_safe_syslog.cnf )并删除或注释这些行 .
step2: 转到mysql conf文件(/etc/mysql/my.cnf)并添加以下行
To enable error log add following
To enable general query log add following
To enable Slow Query Log add following
step3: 保存文件并使用以下命令重启mysql
要在运行时启用日志,请登录mysql客户端(mysql -u root -p)并给出:
最后,我想在此提及的一件事是 I read this from a blog . 谢谢 . 这个对我有用 .
点击here访问博客
您必须激活mysql中的查询日志记录 .
1.edit /etc/my.cnf
2.重新启动计算机或mysqld服务
3.打开phpmyadmin /任何使用mysql / mysql控制台并运行查询的应用程序
4.cat /tmp/mysql.log(你应该看到查询)
MySQL日志由全局变量确定,例如:
log_error用于错误消息日志;
general_log_file用于常规查询日志文件(如果由
general_log
启用);slow_query_log_file用于慢查询日志文件(如果由
slow_query_log
启用);要查看设置及其位置,请运行以下shell命令:
要打印错误日志的值,请在终端中运行以下命令:
要实时读取错误日志文件的内容,请运行:
注意:完成后点击Control-C
启用常规日志后,请尝试:
要使用密码访问
mysql
,请添加-p
或-pMYPASS
参数 . 为了记住它,您可以在~/.my.cnf
中对其进行配置,例如所以下次还会记住它 .
在我(我安装了LAMP)/ etc / mysql /my.cnf文件中,我在[mysqld]部分中找到了以下注释行:
我不得不以超级用户身份打开此文件,终端:
(我更喜欢用Geany代替gedit或VI,没关系)
我只是取消注释它们并保存文件然后用restatt mysql
运行几个查询,打开上面的文件(/var/log/mysql/mysql.log),日志就在那里:)
从MySQL参考手册:
检查
/var/lib/mysql
文件夹 .为了补充loyola的答案,值得一提的是,自MySQL 5.1
log_slow_queries
被弃用并被slow-query-log
取代使用
log_slow_queries
将导致service mysql restart
或service mysql start
失败除了上面的答案,您还可以将命令行参数传递给mysqld进程以记录选项,而不是手动编辑conf文件 . 例如,要启用常规日志记录并指定文件:
确认上面的其他答案,
mysqld --help --verbose
为您提供conf文件中的值(因此使用命令行选项运行general-log为FALSE);而mysql -se "SHOW VARIABLES" | grep -e log_error -e general_log
给出:对错误日志使用稍微更紧凑的语法: