文档章节

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

lixiaokai2008
 lixiaokai2008
发布于 2012/10/25 20:39
字数 1102
阅读 2597
收藏 3

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

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

如何做了?以WampServer Version 2.2为例子

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

找到如下

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程序,且有一定的经验和研究,欢迎一起探讨

mysql有以下几种日志:

错误日志: -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=

© 著作权归作者所有

lixiaokai2008
粉丝 14
博文 100
码字总数 20933
作品 0
中山
私信 提问
用 syslog 改进和调试 PHP 应用程序

用 syslog 改进和调试 PHP 应用程序 PHP 版古老 UNIX syslog 提供了简单有效的调试工具 简介: 探索正在运行中的程序的一种老技术是在策略点上放置代码,显示变量当前值。但是如何完成此操作...

mac_zhao
2011/03/31
131
0
(实用)拿到一个新的阿里云64位centOS系统后,手把手教你编译安装PHP生产环境(lnmp)

本次使用的是centOS6.7 64位系统 第一步:处理阿里云磁盘挂载问题 查看磁盘情况,本次机器系统盘为阿里云赠送的20G,数据盘为100G 其中/dev/xvda为系统盘,/dev/xvdb为数据盘,数据盘暂未做任...

ruiorz
2016/01/18
2K
11
【FAQ系列】Relay log 导致复制启动失败

今天重启从库时遇到一个报错,值得研究一下。 一、报错现象 dba:(none)> start slave;ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository 这个时......

xiaocao13140
2018/05/30
0
0
Relay log 导致复制启动失败

Relay log 导致复制启动失败 今天在使用冷备份文件重做从库时遇到一个报错,值得研究一下。 一、报错现象 dba:(none)> start slave;ERROR 1872 (HY000): Slave failed to initialize relay l...

xiaocao13140
2018/05/24
0
0
MySQL日志探究

mysql_hosting.png 所以今天来研究一下mysql的日志。 一. MySQL日志分类 错误日志 (The Error Log) Problems encountered starting, running, or stopping mysqld 记录启动、运行或停止mysql...

第四单元
2017/09/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Tensorflow 2.0安装

Tensorflow2.0安装环境: Ubuntu 16.04或更高(64位) Windows 7或者更高(64位,且支持python3) 安装Tensorflow 2.0 GPU版本的需要安装NVIDIA相关软件包: NVIDIA驱动 :版本必须410.x或更...

JosiahMg
26分钟前
4
0
TL138/1808/6748F-EasyEVM开发板硬件、CPU、FLASH、RAM

TL138/1808/6748F-EasyEVM是广州创龙基于SOM-TL138/SOM-TL1808/SOM-TL6748F核心板开发的一款开发板。由于SOM-TL138/SOM-TL1808/SOM-TL6748核心板管脚兼容,所以此三个核心板共用同一个底板。...

Tronlong创龙
33分钟前
4
0
百度嵌入式AI解决方案EdgeBoard之内存驱动设计介绍

1. 背景介绍 由于 FPGA 具备可编程和高性能计算的特点,基于FPGA硬件的AI计算加速,正广泛地应用到计算机视觉处理领域。其中极具代表性的部署方式之一就是使用FPGA和CPU组合构成异构计算系统...

AI君
39分钟前
6
0
开放应用模型(OAM):全球首个云原生应用标准定义与架构模型

Kubernetes 项目作为容器编排领域的事实标准, 成功推动了诸如阿里云 Kubernetes (ACK)等云原生服务的迅速增长。但同时我们也关注到,Kubernetes 的核心 API 资源比如 Service、Deploymen...

Mr_zebra
43分钟前
4
0
《Linux操作系统-Exynos4412》编译和安装Busybox

开发环境:Exynos4412-iTOP-4412开发板 现在 Busybox 的配置已经完成了,接下来开始编译 Busybox,在 Ubuntu 的终端输入 “make”命令开始编译 Busybox,如下图。 下图为编译过程中的截图。 ...

书白
45分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部