mysql在linux服务器日志如何查看步骤

在Linux服务器上查看MySQL日志的步骤如下,主要分为定位日志文件和查看日志内容两个阶段:


一、定位MySQL日志文件

方法1:通过MySQL配置文件查找

  1. 打开MySQL配置文件(通常位于以下路径之一):

    bash
     
    sudo vi /etc/my.cnf                # 最常见
    sudo vi /etc/mysql/my.cnf          # Debian/Ubuntu
    sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf  # Ubuntu新版本
  2. 查找日志配置项:

    • 错误日志:log_error

    • 查询日志:general_log_file

    • 慢查询日志:slow_query_log_file

    • 二进制日志:log_bin

    示例配置:

    ini
     
    [mysqld]
    log_error = /var/log/mysql/error.log
    general_log_file = /var/log/mysql/query.log
    slow_query_log_file = /var/log/mysql/slow.log

方法2:通过MySQL命令行查询

  1. 登录MySQL:

    bash
     
    mysql -u root -p
  2. 执行查询命令:

    sql
     
    -- 查看错误日志路径
    SHOW VARIABLES LIKE 'log_error';
    
    -- 查看慢查询日志路径
    SHOW VARIABLES LIKE 'slow_query_log_file';
    
    -- 查看二进制日志路径
    SHOW VARIABLES LIKE 'log_bin_basename';

方法3:通过系统默认路径查找

常见默认路径:

  • 错误日志:/var/log/mysql/error.log(Debian/Ubuntu)或 /var/lib/mysql/hostname.err(CentOS)

  • 慢查询日志:/var/log/mysql/mysql-slow.log

  • 二进制日志:/var/lib/mysql/binlog.XXXXXX


二、查看日志内容

1. 错误日志(Error Log)

bash
 
# 实时跟踪日志
sudo tail -f /var/log/mysql/error.log

# 查看最后100行
sudo tail -n 100 /var/log/mysql/error.log

# 全文查看(使用less)
sudo less /var/log/mysql/error.log

2. 慢查询日志(Slow Query Log)

bash
 
# 直接查看内容
sudo less /var/log/mysql/slow.log

# 使用mysqldumpslow分析(需在MySQL安装目录)
sudo mysqldumpslow /var/log/mysql/slow.log
  1.  

3. 二进制日志(Binary Log)

bash
 
# 使用mysqlbinlog解析日志
sudo mysqlbinlog /var/lib/mysql/binlog.000001

# 解析并过滤特定时间段
sudo mysqlbinlog --start-datetime="2023-01-01 00:00:00" binlog.000001

4. 查询日志(General Query Log)

bash
 
# 实时监控查询
sudo tail -f /var/log/mysql/query.log

三、常见问题解决

  1. 权限不足:

    bash
     
    sudo chmod 644 /var/log/mysql/*.log  # 调整权限
    sudo ls -l /var/log/mysql/           # 检查权限
  2. 日志未启用:

    • 在配置文件(如 my.cnf)中启用日志:

      ini
       
      [mysqld]
      slow_query_log = 1          # 启用慢查询日志
      general_log = 1             # 启用查询日志
  3. 日志文件过大:

    • 使用 logrotate 自动切割日志(默认配置通常位于 /etc/logrotate.d/mysql)。


关键命令总结

目的命令示例
查找错误日志路径 mysql -e "SHOW VARIABLES LIKE 'log_error';"
实时查看错误日志 sudo tail -f /var/log/mysql/error.log
分析慢查询日志 sudo mysqldumpslow -s t /var/log/mysql/slow.log
解析二进制日志 sudo mysqlbinlog --base64-output=DECODE-ROWS -v binlog.000001

💡 提示:生产环境中谨慎启用 general_log(查询日志),会记录所有SQL语句,影响性能!

posted @ 2025-07-14 01:09  飘来荡去evo  阅读(128)  评论(0)    收藏  举报