SELECT VERSION() 最直接查 MySQL 服务端版本,返回纯字符串如8.0.33;SHOW VARIABLES 和 SHOW STATUS 需分开用,前者查配置(如字符集、sql_mode),后者查运行状态(如连接线程数);客户端版本(如mysqli)不等于服务端版本,权限不足时 SELECT VERSION() 通常仍可用。
查 MySQL 版本:用
最直接
php
myadmin 里点开任意数据库,进 sql 标签页,输这句就能看到当前
mysql
服务端版本号:
别用
—— 它返回的是变量名+值两列,多一列干扰;
函数只吐纯版本字符串,比如
或
,复制粘贴也方便。
注意:
查的是服务端(mysqld)版本,不是 PHP 或 phpMyAdmin 自身的。如果你连的是代理或中间件(比如 ProxySQL),它返回的仍是后端真实 MySQL 的版本。
看完整系统信息:
和
要分开用
给配置项,比如字符集、最大连接数、是否启用严格模式;
给运行时状态,比如已处理查询数、线程数、临时表使用量。
常用组合建议:
立即学习
“
PHP免费学习笔记(深入)
”;
查默认字符集和排序规则:
和
确认是否启用了严格模式:
,留意里面有没有
或
看当前连接数压力:
和
别一次性跑
全量——phpMyAdmin 默认只显示前 25 行,容易漏关键项。加
过滤更稳。
区分服务端 vs 客户端版本:别把
当成 MySQL 版本
你在 phpMyAdmin 界面底部看到的 “MySQL client version: 5.7.40” 是 PHP 扩展(mysqli 或 mysqlnd)编译时链接的客户端库版本,跟实际服务端版本无关。
PHP 8.5.5
PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载
这个差异在升级 MySQL 后特别容易误判:服务端已是 8.0,但 PHP 仍用老客户端库连接,可能不支持新特性(比如 caching_sha2_password 认证插件)。
验证方法:
服务端版本认准
客户端能力看 PHP 配置:
里搜
或
,或者执行
辅助判断编译环境
权限不足时查不到信息:常见报错和绕过思路
如果执行
报错
,说明账号没足够权限——但
通常仍可用,因为它是函数调用,不依赖系统表访问权限。
其他低权限下仍可尝试的语句:
(比
权限要求低)
确认当前库
区分登录用户和实际授权用户
真正卡住的情况往往是只给了 DML 权限(SELECT/INSERT/UPDATE/DELETE),连
系统变量都读不了。这时候只能靠应用日志、服务器部署文档,或者联系 DBA。
版本和系统信息这类探针,看似简单,但权限、客户端/服务端分离、代理层遮蔽,三个地方任何一个出问题,结果就不可信。动手前先想清楚:你到底要验证什么?是部署合规性?兼容性排查?还是故障初筛?目标不同,该信哪条语句,得拎得清。
SELECT VERSION()SELECT VERSION();SHOW VARIABLES LIKE 'version'VERSION()8.0.335.7.41VERSION()SHOW VARIABLESSHOW STATUSSHOW VARIABLESSHOW STATUSSHOW VARIABLES LIKE 'character_set%';SHOW VARIABLES LIKE 'collation%';SHOW VARIABLES LIKE 'sql_mode';STRICT_TRANS_TABLESSTRICT_ALL_TABLESSHOW STATUS LIKE 'Threads_connected';SHOW STATUS LIKE 'Threads_running';SHOW VARIABLESLIKEmysqli_get_client_info()SELECT VERSION();phpinfo()mysqlndmysqliSELECT @@version_compile_os, @@version_compile_machine;SHOW VARIABLESAccess denied; you need (at least one of) the SUPER privilege(s) for this operationSELECT VERSION()SELECT @@sql_mode;SHOW VARIABLESSELECT DATABASE();SELECT USER(), CURRENT_USER();@@