普通网友 2025-07-25 00:00 采纳率: 97.8%
浏览 16
已采纳

[err]1146 - table 'performance_schema.session_status' doesn't exist

**问题描述:** 在使用 MySQL 进行性能监控或执行如 `SHOW SESSION STATUS` 等命令时,系统报错 `[Err] 1146 - Table 'performance_schema.session_status' doesn't exist`。该错误通常发生在 MySQL 服务重启后或数据库升级过程中,导致 `performance_schema` 数据库中的系统表未被正确加载或初始化。此问题可能影响监控工具或依赖性能视图的应用程序正常运行。常见原因包括 MySQL 版本兼容性问题、配置文件错误、或系统表损坏。如何诊断并修复 `performance_schema.session_status` 表缺失问题,是解决该错误的关键步骤。
  • 写回答

1条回答 默认 最新

  • 程昱森 2025-07-25 00:00
    关注

    一、问题背景与现象描述

    在使用 MySQL 进行性能监控时,执行如 SHOW SESSION STATUS 命令时,系统报错:
    [Err] 1146 - Table 'performance_schema.session_status' doesn't exist
    该错误表明 performance_schema 数据库中缺少 session_status 表,导致无法获取会话级别的性能统计信息。此问题通常出现在以下场景:
    • MySQL 服务重启后
    • MySQL 版本升级后
    • 配置文件错误或未启用 performance_schema
    • 系统表损坏或初始化失败
    该问题可能影响监控工具(如 Zabbix、Prometheus)、性能分析工具或依赖性能视图的应用程序的正常运行。

    二、问题诊断流程

    1. 确认 performance_schema 是否启用

      执行以下命令查看是否启用:

      SHOW VARIABLES LIKE 'performance_schema';

      若返回值为 OFF,需在配置文件中启用。

    2. 检查 performance_schema 数据库结构
      USE performance_schema;
      SHOW TABLES LIKE 'session_status';

      若无该表,说明系统表未被正确加载。

    3. 查看 MySQL 错误日志

      定位 MySQL 的错误日志路径:

      SHOW VARIABLES LIKE 'log_error';

      检查日志中是否有关于 performance_schema 初始化失败的记录。

    4. 确认 MySQL 版本兼容性
      SELECT VERSION();

      某些旧版本升级到新版本后,系统表结构可能未正确迁移。

    三、解决方案与修复步骤

    1. 重启 MySQL 并强制重建 performance_schema

      编辑 MySQL 配置文件(通常是 my.cnfmy.ini),添加或修改:

      [mysqld]
      performance_schema=ON
      performance_schema_force=ON

      重启 MySQL 服务:

      sudo systemctl restart mysql
    2. 手动重建 performance_schema 表

      适用于无法重启的情况,执行如下命令重建系统表:

      mysql -u root -p -e "REPAIR TABLE performance_schema.session_status;"

      若失败,可尝试重新初始化 MySQL 系统表:

      mysql_upgrade --force
    3. 升级或修复 MySQL 安装

      若怀疑是版本兼容问题,可尝试:

      sudo apt-get install --reinstall mysql-server

      或使用官方升级流程重新安装。

    四、预防与最佳实践

    最佳实践说明
    定期检查 performance_schema 状态在每次重启或升级后,确认其启用状态及表结构完整性
    启用 performance_schema_force强制 MySQL 重建损坏的系统表
    使用 mysql_upgrade 工具升级后运行该工具确保系统表结构一致
    保留错误日志并定期分析帮助快速定位 performance_schema 初始化失败原因

    五、扩展分析与系统影响

    graph TD A[用户执行 SHOW SESSION STATUS] --> B{performance_schema 是否启用?} B -->|否| C[报错:session_status 不存在] B -->|是| D{session_status 表是否存在?} D -->|否| E[报错] D -->|是| F[正常返回结果] E --> G[检查配置文件] E --> H[检查 MySQL 错误日志] E --> I[执行 mysql_upgrade]

    该错误不仅影响单条命令的执行,还可能造成依赖性能视图的监控系统数据缺失、告警误报等问题。建议将其纳入数据库运维标准检查流程。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 10月23日
  • 创建了问题 7月25日