日志管理
默认的数据库日志
vim /etc/my.cnf
//错误日志
log-error=/usr/local/mysql/mysql.log
查看数据库日志
tail -f /usr/local/mysql/mysql.log
1 错误日志 :启动,停止,关闭失败报错。rpm安装日志位置 /var/log/mysqld.log #默认开启
2 通用查询日志:所有的查询都记下来。 #默认关闭,一般不开启
3 二进制日志(bin log):实现备份,增量备份。只记录改变数据,除了select都记。
4 中继日志(Relay log):读取主服务器的binlog,在slave机器本地回放。保持与主服务器数据一致。
5 slow log:慢查询日志,指导调优,定义某一个查询语句,执行时间过长,通过日志提供调优建议给开发人员。
6 DDL log: 定义语句的日志。
1.errog log 错误日志
vim /etc/my.cnf
log-error=/usr/local/mysql/mysql.log
cd /usr/local/mysql/
ll mysql.log 是放错误日志的
//想换个路径
mkdir logs
chown -R mysql:mysql logs/
ll
touch logs/mysql.log
cd logs/
ll
chown -R mysql:mysql mysql.log
vim /etc/my.cnf
log-error=/usr/local/mysql/logs/mysql.log
然后正在服务重启
systemctl restart mysqld
重启之后在回到cd logs/里
tail -f mysql.log 就可以查看日志文件了
mysql开启日志轮转
mysql通用查询日志开启
1 先要查询一下
find /usr/local/mysql/ -name *.pid
/usr/local/mysql/data/localtime.pid
要轮转所有日志就带个星号
/usr/local/mysql/logs/*.log {
启用日志轮转
直接复制粘贴
PIDFILE=$(find /usr/local/mysql/ -name *.pid)
cat >/etc/logrotate.d/mysql<<eof
##要轮转的日志文件
/usr/local/mysql/logs/general.log
/usr/local/mysql/logs/mysql.log
{
create 660 mysql mysql
notifempty
dateext
daily
rotate 7
missingok
compress
sharedscripts
postrotate
/bin/kill -HUP \$(cat ${PIDFILE} 2> /dev/null) 2> /dev/null || true
endscript
}
eof
cd /etc/logrotate.d
vim mysql
//改成*.log
/usr/local/mysql/logs/*.log {
开启日志轮转 强制切割轮转 手工启用
logrotate -f /etc/logrotate.d/mysql
然后在回到哪里
机会发现有一个压缩的文件
里面的文件会保留七天 没事就去看看
cd /usr/local/mysql/logs/ ll
//这个文件是常规查询日志 就是mysql通用查询命令
touch /usr/local/mysql/logs/general.log 1
chown -R mysql:mysql /usr/local/mysql/logs
//这个文件是放mysql错误启用日志
mysql.log-20240521.gz
启用配置文件
vim /etc/my.cnf
[mysqld]
......
general_log = 1
log_output = FILE
general_log_file=/usr/local/mysql/logs/general.log
1
1俩个的路径是一样的
然后在服务重启
systemctl restart mysqld
查看日志文件
tail -f mysql.log
tail -f general.log
Query //是正在执行查询的语句
在开一个窗口
use qf2401;
mysql> select * from qf2401.com_info;
第一个窗口就可以看到日志
统计多少人写入库 多少人查询库
cat general.log | grep Query
cat general.log | grep Query | grep SELECT | wc -l
开启日志轮转 强制切割轮转 手工启用
logrotate -f /etc/logrotate.d/mysql