导读:本期聚焦于小伙伴创作的《如何解决 PHP 连接 MySQL 提示权限拒绝 检查数据库用户授权设置》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何解决 PHP 连接 MySQL 提示权限拒绝 检查数据库用户授权设置》有用,将其分享出去将是对创作者最好的鼓励。

PHP应用连接MySQL数据库时,若出现权限拒绝的错误提示,大多是因为数据库用户的授权配置不符合连接要求,需要从用户权限、主机匹配、密码验证等多个维度排查问题。

如何解决 PHP 连接 MySQL 提示权限拒绝 检查数据库用户授权设置

常见权限拒绝错误表现

PHP连接MySQL时出现的典型权限相关错误提示如下:

  • Access denied for user 'test_user'@'localhost' (using password: YES)
  • Access denied for user 'test_user'@'192.168.0.10' (using password: NO)
  • Host 'web_server_ip' is not allowed to connect to this MySQL server

检查数据库用户授权设置步骤

1. 登录MySQL查看用户权限

首先使用管理员账号登录MySQL服务,查看目标用户的授权信息,确认权限范围是否包含当前操作:

-- 查看所有用户及对应的主机授权范围
SELECT user, host FROM mysql.user WHERE user = 'test_user';

-- 查看指定用户的完整权限
SHOW GRANTS FOR 'test_user'@'localhost';

如果用户对应的host字段不是%或者当前PHP服务所在的主机地址,就会出现主机不允许连接的权限错误。

2. 验证密码正确性

确认连接时使用的密码和MySQL中存储的密码一致,若密码错误也会触发权限拒绝提示:

-- 修改用户密码(MySQL 5.7及以上版本)
ALTER USER 'test_user'@'localhost' IDENTIFIED BY 'new_password';

-- 刷新权限使配置生效
FLUSH PRIVILEGES;

3. 修正用户授权配置

如果权限范围不足或者主机不匹配,需要重新为用户授权:

-- 授予test_user用户所有数据库的所有权限,允许任意主机连接
GRANT ALL PRIVILEGES ON *.* TO 'test_user'@'%' IDENTIFIED BY 'user_password';

-- 仅授予test_user对test_db数据库的操作权限,仅允许localhost连接
GRANT SELECT, INSERT, UPDATE, DELETE ON test_db.* TO 'test_user'@'localhost' IDENTIFIED BY 'user_password';

-- 刷新权限
FLUSH PRIVILEGES;

PHP连接代码示例

完成授权配置后,使用正确的参数编写PHP连接代码:

<?php
$host = '127.0.0.1';
$port = 3306;
$user = 'test_user';
$password = 'user_password';
$database = 'test_db';

// 创建连接
$conn = new mysqli($host, $user, $password, $database, $port);

// 检查连接是否成功
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
echo "MySQL连接成功";
$conn->close();
?>

注意事项

授权时host字段的设置需要符合实际场景,生产环境不建议使用%开放所有主机访问权限,应尽量限制为固定的PHP服务主机地址。修改权限后一定要执行FLUSH PRIVILEGES命令,否则配置不会立即生效。如果使用的是云服务器或者Docker容器部署的MySQL,还需要检查服务端口是否开放,防火墙是否允许对应IP访问3306端口。

PHPMySQL权限拒绝数据库用户授权修改时间:2026-07-02 00:36:18

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。