连接mysql,报错”Table ‘performance_schema.session_variables’ doesn’t exist ”

本文解决了一个常见的MySQL错误:在尝试访问数据库时遇到Table ‘performance_schema.session_variables’ doesn’t exist的问题。通过执行mysql_upgrade命令并重启服务,成功升级了数据库表结构,解决了因版本升级导致的兼容性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目一直在运行,今天突然发现进不去了,然后使用workbench连接数据,报错:Table ‘performance_schema.session_variables’ doesn’t exist ‘’,一直没动过。

解决办法:

第一步:

进入bin目录下,输入mysql_upgrade -u root -p --force,如下:

[root@localhost /]# cd /usr/bin

[root@localhost bin]# mysql_upgrade -u root -p --force 

第二步:重新启动mysql的服务:

service mysql restart

再次运行mysql,就解决了。

造成的这种情况的具体原因是 因为我们在安装pysql的时候,升级了mysql的版本到5.7.18,但是只是升级了mysql的软件包,没有相应的升级数据库的相关表结构。

 

### 关于 Navicat 中 `performance_schema.session_variables` 表的相关信息 #### 错误背景 当使用 Navicat 连接MySQL 数据库时,如果遇到错误提示 “1146 - Tableperformance_schema.session_variablesdoesn’t exist”,通常是因为该表不存在或未被正确初始化。此问题可能源于 MySQL 版本升级过程中某些元数据表未能同步更新[^3]。 #### `performance_schema.session_variables` 表的作用 `performance_schema.session_variables` 是 MySQL 性能监控子系统的一部分,用于存储当前会话级别的变量状态。它记录了每个线程(session)的系统变量值,帮助管理员分析不同会话下的配置差异以及性能调优所需的信息[^2]。 | 字段名 | 类型 | 描述 | |-------------------|--------------|----------------------------------------------------------------------| | VARIABLE_NAME | VARCHAR(64) | 变量名称 | | VARIABLE_VALUE | VARCHAR(1024)| 当前会话下对应的变量值 | 注意:上述字段定义基于标准实现,具体版本可能存在细微差别。若表缺失,则需重新构建或修复环境。 --- #### 如何解决表丢失的问题? 以下是几种常见解决方案: 1. **确认权限** 确保登录账户具有足够的权限访问 `performance_schema` 下的所有对象。可以通过以下 SQL 查询验证: ```sql SHOW GRANTS FOR 'your_user'@'host'; ``` 2. **运行升级工具** 如果是从较低版本(如 5.6)迁移到较高版本(如 5.7),建议执行官方提供的升级脚本来重建必要的元数据表: 打开命令行并切换至 MySQL 安装目录中的 bin 文件夹,随后运行以下指令: ```bash mysql_upgrade -u root -p --force ``` 输入密码后等待完成即可[^5]。 3. **手动创建表** 若以上方法不可用,可尝试从其他正常实例导出对应 DDL 并导入目标服务器中。例如: ```sql CREATE TABLE IF NOT EXISTS performance_schema.session_variables ( VARIABLE_NAME VARCHAR(64), VARIABLE_VALUE VARCHAR(1024) ) ENGINE=PERFORMANCE_SCHEMA; ``` 4. **重启服务** 部分情况下仅需停止再启动 MySQL 服务便可恢复异常状况: ```bash net stop MySQL net start MySQL ``` --- #### 测试连接成功后的操作 一旦解决了表缺失问题,在 Navicat 中可以正常使用如下功能: - 查看实时 session 参数设置; - 对比多线程间的行为特征; - 导入/导出涉及此类敏感数据的内容而无需担心报错中断流程等问题发生。 ```sql SELECT * FROM performance_schema.session_variables WHERE VARIABLE_NAME LIKE '%timeout%'; ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值