MyCat读服务器没有日志,绝大多数情况下并不是故障,而是MySQL的二进制日志(binlog)本身只记录写操作,读操作默认不会写入binlog;如果找的是慢查询日志或通用查询日志,则需要先确认日志开关有没有打开、MyCat的路由配置是否正确。
先分清你说的“日志”到底是哪一种
很多朋友在排查时,把MySQL日志、MyCat日志、操作系统日志混在一锅里煮,结果找错方向,先按类型理一遍。MySQL服务器侧日志
- 二进制日志(binlog):记录所有改变数据的写操作,如INSERT、UPDATE、DELETE、CREATE TABLE等,主从复制依赖它,SELECT这类读操作不会出现在binlog中,这不是异常,而是设计如此。
- 慢查询日志(slow_query_log):记录执行时间超过long_query_time阈值的SQL,读写都会记录,默认关闭,需要显式开启。
- 通用查询日志(general_log):记录所有到达MySQL的连接和SQL语句,读写都记,但生产环境极少开启,因为写入开销相当大。
- 错误日志(error log):记录服务启动、关闭、报错信息,和你的查询操作没有直接关系。
网友评论