mysql日志分为四大类:慢查询日志,查询日志,错误日志,二进制日志
一.慢查询日志:大于慢查询时间的语句,都会记录在慢查询日志中
1.查看慢查询是否开启 show variables like "slow_query_log"; 如下:slow_query_log: ON/OFF
slow_query_log_file:慢查看日志名称:slow.log 2.开启慢查询 set global slow_query_log='ON'; 3.查看慢查询时间 show variables like "%long%"; 如下:long_query_time :单位为秒
4.设置慢查询时间 set global long_query_time=2; 设置后要重新退出登录mysql才字段值才会更新
二.查询日志:查询日志记录了数据库执行的命令,不管这些语法是否正确,都会被记录
1.查询日志一般默认关闭状态
由于数据库操作命令非常多而且比较频繁,所以开启了查询日志以后,数据库可能需要不停的写入查询,这样会增大服务器的IO压力,增加很多的系统开销,所以默认情况下,mysql的查询日志默认关闭
2.查看开关及日志名称
3.开启/关闭查询日志开关
set global general_log = "OFF";
三.错误日志
1.错误日志包括:mysql执行过程中的错误信息,mysql执行过程中的告警信息,mysq启动和停止过程中产生的信息等
2.查看错误日志相关参数
show variables where variable_name="log_error" or variable_name="log_warnings";
log_error:错误日志的存放路径
log_warnings:表示是否记录告警信息到错误日志,0表示不记录告警信息,1表示记录告警信息,大于1表示各类告警信息,例如有关网络故障的信息和重新连接信息写入错误日志
FILE:
四.二进制日志
1.作用:二进制日志是一个二进制文件,记录了对MySQL数据库执行更改的所有操作,并且记录了语句发生时间、执行时长、操作数据等其他额外信息,但是他不记录SELECT、SHOW等那些不改变数据库的SQL语句。二进制日志主要用于数据库恢复和主从复制,以及审计操作
2.查看二进制日志
log_bin:表示二进制日志是否开启,ON表示开启,OFF表示未开启,默认OFF
log_bin_basename:二进制日志文件前缀名,二进制日志就记录在该文件中
binlog_format:决定了二进制日志的记录方式,STATEMENT以语句的形式记录,ROW以数据修改的形式记录,MIXED以语句和数据修改混合形式记录
https://www.cnblogs.com/plyonfly/p/11469802.html
五.优化
1.max_connections:最大连接数,如果你经常看到‘Too many connections’错误,是因为max_connections的值太低了,可以调整为1000
MySQL>show variables like 'max_connections';
2.back_log
由默认的50修改为500 back_log=500
back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。
也就是说,如果MySql的连接数据达到max_connections时,新来的请求将会被存在堆栈中,
以等待某⼀一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,
将不不被授予连接资源。查看mysql 当前系统默认back_log值,
命令:show variables like 'back_log’;
修改配置文件:/etc/my.cnf
https://blog.csdn.net/fuzhongfaya/article/details/80866197