缘起
近日在研究MyBatis的缓存机制,作为前置条件,自然要了解一些JDBC的缓存机制,比如PreparedStatement就是JDBC缓存的一个体现,将预编译的SQL语句缓存在服务端数据库中,当然这是后话。
想要直观的看到PreparedStatement预编译的动作自然想到日志,毕竟日志分级就是为了记录所有服务端的操作信息。习惯了在Linux服务器下查看各种日志信息,现在想在家里的windows电脑上模拟一个这样的环境,希望能对回家后还会写点东西且没有远程linux服务器可以给你调用的同学有点帮助。
开启MySQL日志功能
MySQL服务端安装后,打开其命令行客户端工具,也就是command line client。
输入安装时设置的密码后,进入mysql命令行,这个大家应该都知道。
输入
show variables like “log%”;
可以看到,MySQL安装后,日志功能是默认关闭的
接下来就是如何打开MySQL的日志功能,找到MySQL安装目录下的my.ini文件,经常修改MySQL服务端配置的同学对这个文件肯定不陌生,就好比于我们集成MyEclipse/Eclipse的插件经常会去修改myeclipse.ini文件一样。
打开my.ini,找到[msqld]部分,加入以下命令
[mysql]
log=”F:\Studio\MySQL\logs”,这个地址就是我们设置存放logs文件的路径。
# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# file.
#
[mysqld]
log="F:\Studio\MySQL\logs\mysql.log"
修改保存后,重启mysql服务,再次输入查看日志相关配置的命令
mysql> show variables like “log%”;
应该就可以看到
一切顺利的话,此时打开配置的日志路径,就能看到目录下的mysql.log文件了
看到这里,不管是做开发还是做运维的同学是不是不由想到了什么,好熟悉的.log文件,看到这个后缀的文件就会忍不住想tail -f xxx.log,是不是!
当然,如果此时你兴冲冲地打开cmd,进入mysql.log,只会是下面这个结果。
这个肯定是能预料到的,因为你的windows啊,大哥!所以你需要让windows系统识别tail命令。
下载tail.exe,把tail.exe放到c:\windows\system32\目录下,就可以在命令行中使用tail命令了。
在这里就我们就可以看到MySQL的查询日志了,当然还有很多其他级别的日志。
错误日志: -log-err
查询日志: -log
慢查询日志: -log-slow-queries
更新日志: -log-update
二进制日志: -log-bin
打开这些日志的方式和上面所展示的-log一样,在此就不赘述,有了日志平台,我们就可以更加直观地捕捉MySQL做了哪些事,为我们理解相关的ORM持久化框架的底层机制提供了很多信息上的帮助。