Namecheap cPanel主机MySQL权限异常:已授权仍遭SELECT命令拒绝求助
针对报错:SELECT command denied to user 'incoktys_rig_vtu_admin'@'localhost' for table 'users' in /home/incoktys/public_html/vtu/login.php:98,按以下步骤排查:
核对用户与数据库的绑定关系
登录cPanel面板,进入「MySQL数据库」页面,找到users表所属的数据库,查看该数据库关联的用户列表,确认incoktys_rig_vtu_admin在列表中,且权限设置为ALL PRIVILEGES(或至少包含SELECT权限)。重新授权并刷新权限表
- 从cPanel进入phpMyAdmin,选中目标数据库;
- 点击「权限」标签,找到
incoktys_rig_vtu_admin@localhost,点击「编辑权限」; - 勾选
SELECT权限(或直接勾选「全选」),点击「执行」; - 切换到「SQL」标签,执行语句
FLUSH PRIVILEGES;,强制刷新权限配置。
验证代码中的连接参数
打开login.php文件定位到第98行,确认数据库连接使用的用户名是incoktys_rig_vtu_admin,且指定的数据库名正确,确保代码中访问的users表属于该数据库(无前缀拼写错误)。检查用户的主机地址配置
返回cPanel的「MySQL用户」页面,查看incoktys_rig_vtu_admin的主机字段是否为localhost——报错显示用户主机是localhost,若用户创建时选了%或其他地址,会导致权限不匹配。确认用户的具体权限范围
在phpMyAdmin的「SQL」标签执行语句:SHOW GRANTS FOR 'incoktys_rig_vtu_admin'@'localhost';检查返回结果中是否包含类似
GRANT SELECT ON[你的数据库名].* TO 'incoktys_rig_vtu_admin'@'localhost';的条目,确保权限覆盖到users表所在的数据库。
内容的提问来源于stack exchange,提问作者Johannes Anih

