首页 > 解决方案 > 如何修复除root以外的任何用户的mysqli返回访问被拒绝

问题描述

我正在尝试编写一个在网站上显示数据库的 php 脚本,但我不知道为什么它只接受 root 用户作为登录名。如果我将任何其他用户放入脚本中,它只会说访问被拒绝。

我尝试使用的用户拥有对该数据库授予的所有权限。

+-----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for user@localhost                                                                                                              |
+-----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' IDENTIFIED BY PASSWORD '' WITH GRANT OPTION |
| GRANT ALL PRIVILEGES ON `my_db`.* TO 'user'@'localhost' WITH GRANT OPTION                                                            |
+-----------------------------------------------------------------------------------------------------------------------------------------+
<?php
$servername = "localhost";
$username = "root";
$password = "Password";
$dbname = "my_db";

$mysqli = new mysqli( $servername, $username, $password, $dbname );

if ($mysqli->connect_errno){
    printf("connect failed: %s\n", $mysqli->connect_errno);
    exit();
}

$rs = $mysqli->query( "SELECT * FROM table ORDER BY device_name ASC;" );

标签: phpmysqlmysqli

解决方案


推荐阅读