本地环境(XAMMP/Laragon)PHP软件MySQL连接权限拒绝问题求助
解决MySQL "Access denied for user" 本地连接错误
问题分析
从你提供的错误信息和代码片段可以明确:
Fatal error: Uncaught mysqli_sql_exception: Access denied for user 'Adeleke'@'localhost' (using password: YES)
代码中使用表单提交的参数直接连接MySQL:
if (!empty($_POST['install'])) { $con = mysqli_connect($_POST['sql_host'], $_POST['sql_user'], $_POST['sql_pass'], $_POST['sql_name']); if (mysqli_connect_errno()) { $ServerErrors[] = "Failed to connect to MySQL: " . mysqli_connect_error();
结合Laragon的错误栈可知,连接时使用的参数是127.0.0.1、Adeleke、Badvibe019!、Laragon.MySQL,错误核心是本地MySQL的用户/数据库配置与这些参数不匹配,且该问题在XAMPP和Laragon中均出现,说明不是环境本身的问题。
解决方案
1. 确认本地MySQL中存在目标用户并配置权限
本地环境(XAMPP/Laragon)的MySQL默认管理员用户是root,密码通常为空(或安装时自定义的密码),Adeleke这个用户大概率未在本地创建:
- 打开环境自带的PhpMyAdmin(XAMPP访问
http://localhost/phpmyadmin,Laragon直接点击菜单的PhpMyAdmin),用root账号登录。 - 切换到「用户账户」页面:
- 若不存在
Adeleke@localhost或Adeleke@127.0.0.1:点击「添加用户」,创建用户Adeleke,设置密码为Badvibe019!,并授予该用户对目标数据库Laragon.MySQL的所有权限(或全局权限用于快速测试)。 - 若已存在该用户:检查其权限是否包含对
Laragon.MySQL的访问权限,以及是否允许从127.0.0.1/localhost地址连接。
- 若不存在
2. 验证目标数据库是否存在
错误中指定的数据库名为Laragon.MySQL,需确认本地MySQL中是否有该数据库:
- 在PhpMyAdmin左侧面板查看数据库列表,若不存在,要么创建
Laragon.MySQL数据库,要么在软件安装页面将数据库名改为本地已存在的数据库(比如新建myqueerdate)。
3. 核对安装页面的连接参数
表单填写的参数必须与本地MySQL配置完全匹配:
- 主机地址:
localhost或127.0.0.1均可,但要注意用户权限的匹配(Adeleke@localhost和Adeleke@127.0.0.1是两个独立用户,权限分开)。 - 临时测试方案:先用默认的
root用户(密码为空或自定义密码)填写安装参数,若能成功连接,再回到用户权限配置步骤,确保Adeleke用户设置正确。
4. 排查密码特殊字符问题
你的密码包含!特殊字符,虽MySQL支持,但可能存在表单提交转义问题:
- 先更换为无特殊字符的简单密码(如
123456)测试连接,若成功,再换回原密码并确认安装页面输入无误。
额外说明
软件在cPanel上能正常运行,说明代码逻辑无问题,所有问题均集中在本地MySQL的用户权限、数据库存在性与连接参数的匹配上。
内容的提问来源于stack exchange,提问作者Paul Adeleke
相关产品推荐
相关产品推荐

