Win Server 2019下XAMPP部署Invision Community遇MySQL权限错误求助
解决Invision Community安装时MySQL权限拒绝问题
我来帮你梳理下这个问题的核心和解决方案,你遇到的Access denied for user ''@'localhost' (using password: NO)错误,本质是Invision的检测脚本ips4.php在尝试空用户名、无密码连接MySQL时被拒绝了,结合两台服务器的环境差异,主要是PHP和MariaDB版本的兼容性导致的,以下是针对性的解决步骤:
1. 调整MariaDB的root用户认证方式
MariaDB 10.4及以后版本默认的用户认证方式(比如unix_socket或caching_sha2_password)和PHP 8.x的mysqli扩展兼容性不如旧版的mysql_native_password,尤其是空密码场景:
- 打开XAMPP的Shell,执行
mysql -u root(因为你当前root无密码)登录MariaDB; - 执行查询查看当前root用户的认证插件:
SELECT user, host, plugin FROM mysql.user WHERE user='root'; - 如果插件不是
mysql_native_password,执行以下命令修改(保持空密码):ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ''; FLUSH PRIVILEGES; - 重启XAMPP中的MySQL服务。
2. 修复phpMyAdmin的登录问题
你提到设置root密码后无法登录且无登录请求,这是phpMyAdmin的配置问题:
- 打开
xampp/phpMyAdmin/config.inc.php文件; - 找到
$cfg['Servers'][$i]['auth_type'],将其值从config改为cookie,这样会弹出登录框; - 如果需要保持空密码登录,确保以下配置未被注释:
$cfg['Servers'][$i]['AllowNoPassword'] = true; - 保存配置后重启Apache服务。
3. 临时修改检测脚本的连接参数
ips4.php作为检测脚本,可能硬编码了无参数的MySQL连接逻辑,导致无法通过权限检测:
- 打开
C:\xampp\htdocs\ips4.php,定位到第317行附近的mysqli->__construct调用; - 将原代码(类似
new mysqli('localhost'))修改为传入正确的用户名和空密码:new mysqli('localhost', 'root', '') - 保存后刷新安装页面,应该能跳过检测进入正常的数据库配置环节。
4. 匹配兼容的环境版本
如果上述方法无效,大概率是Invision Community对PHP 8.2和MariaDB 10.4的兼容性不足:
- 查看Invision官方的系统要求,确认是否支持当前的PHP和数据库版本;
- 直接降级XAMPP到服务器1使用的版本(比如XAMPP 7.3.7),完全复刻稳定运行的环境,这是最稳妥的解决方案。
操作前记得备份好数据库和配置文件,避免数据丢失。
内容的提问来源于stack exchange,提问作者Koyakami
相关产品推荐
相关产品推荐

