安装XAMPP7.2.4后打开MySQL Admin报exists()空对象调用错误求助
我之前在Windows Server环境下处理过一模一样的问题——相同版本的XAMPP,一台正常一台报这个致命错误,大概率是配置、缓存或者文件损坏的问题,你可以按下面的步骤逐一排查:
检查phpMyAdmin核心配置
打开C:\xampp\phpMyAdmin\config.inc.php,重点确认这几个配置项:$cfg['Servers'][$i]['host']:试试把localhost改成127.0.0.1,Windows下localhost可能默认走IPv6,导致MySQL连接失败返回null;$cfg['Servers'][$i]['user']和$cfg['Servers'][$i]['password']:默认XAMPP的MySQL root密码是空的,如果你修改过密码,要确保这里的配置和MySQL实际密码一致;$cfg['Servers'][$i]['auth_type']:推荐设为cookie或者config,如果选config模式,一定要保证用户名密码完全正确。
清理phpMyAdmin临时缓存
进入C:\xampp\phpMyAdmin\tmp目录,删掉所有以cache_开头的文件,有时候缓存文件损坏会触发这种莫名其妙的调用错误,清空后重启phpMyAdmin试试。确认MySQL服务正常运行
在XAMPP控制面板里先停止MySQL服务,等几秒再重新启动,有时候服务看似启动但实际处于异常状态。另外可以打开命令提示符,输入mysql -u root,如果能正常进入MySQL命令行,说明MySQL本身没问题,问题出在phpMyAdmin这边;如果连接失败,那得先解决MySQL的启动问题。替换完整的phpMyAdmin文件
既然另一台相同环境的机器能正常运行,你可以把那台机器上的C:\xampp\phpMyAdmin整个文件夹复制过来覆盖当前的,这样能排除当前phpMyAdmin安装文件损坏的可能性——毕竟有时候解压或者安装过程中会出现文件缺失或损坏的情况。检查PHP mysqli扩展是否启用
打开C:\xampp\php\php.ini,找到extension=mysqli这一行,确保前面没有分号注释掉。phpMyAdmin依赖mysqli扩展连接MySQL,如果这个扩展没开启,就会出现数据库连接对象为null的情况,进而触发exists()调用错误。
内容的提问来源于stack exchange,提问作者Jean-Cédric Hamel

