mysql 日志的启动与查看:有利于开发者研究网站一个页面执行时的sql语句变化

当咱们研究一个网站的时候,好比phpwind系统,我须要知道当发表帖子的时候mysql执行了哪些查询和更新和插入呢? php

有个方法能够给我咱们,那就是开启mysql的日志 查询日志: -log 便可解决。 mysql

如何作了?以WampServer Version 2.2为例子 linux

打开安装目录下的:\wamp\bin\mysql\mysql5.5.24\my.ini sql

找到以下 windows

log-error=E:/wamp/logs/mysql.log
在它下面增长


log=E:/wamp/logs/mysql-log.log
好了,重启mysql。

接着执行访问一次准备好的phpwind页面,而后查看下E:/wamp/logs/mysql-log.log(直接用编辑工具打开,例如记事本),便可查看到本次访问,mysql执行了哪些sql语句(查询+更新+插入) 工具

好了,如下内容转自强大的互联网 网站

本人网站:http://www.xinhuiyi.com/ 新回忆社区 若是您也是使用phpwind程序,且有必定的经验和研究,欢迎一块儿探讨
ui

mysql有如下几种日志: spa

错误日志: -log-err
查询日志: -log
慢查询日志:  -log-slow-queries
更新日志:  -log-update

二进制日志: -log-bin 日志

默 认状况下,全部日志建立于mysqld数据目录中。经过刷新日志,你能够强制 mysqld来关闭和从新打开日志文件(或者在某些状况下切换到一个新的日志)。当你执行一个FLUSH LOGS语句或执行mysqladmin flush-logs或mysqladmin refresh时,出现日志刷新

1. 错误日志

用--log- error[=file_name]选项来指定mysqld保存错误日志文件的位置。若是没有给定file_name值,mysqld使用错误日志名 host_name.err 并在数据目录中写入日志文件。若是你执行FLUSH LOGS,错误日志用-old从新命名后缀而且mysqld建立一个新的空日志文件。(若是未给出--log-error选项,则不会从新命名)。

若是不指定--log-error,或者(在Windows中)若是你使用--console选项,错误被写入标准错误输出stderr。一般标准输出为你的终端。

2. 通用查询日志                                                            

用--log[=file_name]或-l [file_name]选项启动它。若是没有给定file_name的值,默认名是host_name.log。

3. 慢速查询日志                                                            

用--log-slow-queries[=file_name]选项启动时,mysqld 写一个包含全部执行时间超过long_query_time秒的SQL语句的日志文件.若是没有给出file_name值,默认未主机名,后缀为 -slow.log。若是给出了文件名,但不是绝对路径名,文件则写入数据目录。

3. 更新日志                                                              

用--log-update[=file_name]选项启动,不推荐使用.

是否启用了日志
show variables like 'log_%';
怎样知道当前的日志
show master status;
顯示二進制日志數目
show master logs;
看二进制日志文件用mysqlbinlog
mysqlbinlog mail-bin.000001

或者


mysqlbinlog mail-bin.000001 | tail


在配置文件中指定log的輸出位置.
Windows:Windows 的配置文件为 my.ini,通常在 MySQL 的安装目录下或者 c:\Windows 下。
Linux:Linux 的配置文件为 my.cnf ,通常在 /etc 下。
在linux下:
Sql代码
# 在[mysqld] 中輸入
#log
log-error=/usr/local/mysql/log/error.log
log=/usr/local/mysql/log/mysql.log
long_query_time=2
log-slow-queries= /usr/local/mysql/log/slowquery.log

# 在[mysqld] 中輸入 #log
log-error=/usr/local/mysql/log/error.log
log=/usr/local/mysql/log/mysql.log
long_query_time=2
log-slow-queries= /usr/local/mysql/log/slowquery.log

windows下:
Sql代码
# 在[mysqld] 中輸入
#log
log-error="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/error.log"
log="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/mysql.log"
long_query_time=2
log-slow-queries= "E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/slowquery.log"

# 在[mysqld] 中輸入 #log
log-error="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/error.log"
log="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/mysql.log"
long_query_time=2
log-slow-queries= "E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/slowquery.log"

开启慢查询

long_query_time =2 --是指执行超过多久的sql会被log下来,这里是2秒
log-slow-queries= /usr/local/mysql/log/slowquery.log --将查询返回较慢的语句进行记录
log-queries-not-using-indexes = nouseindex.log --就是字面意思,log下来没有使用索引的query

log=mylog.log --对全部执行语句进行记录


windows下开启mysql日志:

在[mysql]下加入这些(基本上等于加在最后面):
log-error=
name for the query log file. Otherwise a default name will be used.
#注:(写成txt文件editplus能够及时重载,不过有时要放在C盘下editplus才能够及时重载)
log= c:/mysql_query.log.txt
#Enter a name for the slow query log file. Otherwise a default name will be used.
log-slow-queries=
#Enter a name for the update log file. Otherwise a default name will be used.
log-update=
#Enter a name for the binary log. Otherwise a default name will be used.
log-bin=
相关文章
相关标签/搜索