mysqli无法以非root用户身份连接

问题描述 投票:0回答:0

我正在设计一个使用验证方法登录的XAMPP 测试页面。到目前为止,我一直在使用“root”帐户来检查尝试登录的用户是否确实存在(如果我尝试以登录用户身份连接,但它不存在或密码不匹配,它会立即抛出致命错误),但这当然会使 root 帐户容易受到攻击,因为密码显示在代码中。所以我想创建一个新用户,只有 SELECT 权限,并用它来检查登录用户。但是,每当我尝试运行代码时,它也会抛出致命错误。

给出错误的代码:

$conn = new mysqli('localhost', "test_conn", "1234", "mysql");

错误信息:

Fatal error: Uncaught mysqli_sql_exception: Access denied for user 'test_conn'@'localhost' (using password: YES) in C:\[path]\sesion.php:41 Stack trace: #0 C:\[path]\sesion.php(41): mysqli->__construct('localhost', 'test_conn', Object(SensitiveParameterValue), 'mysql') #1 {main} thrown in C:\[path]\sesion.php on line 41

用户在 phpMyAdmin 上选择(缩写,其余值为“N”或空):

 Host   User    Password    Select_priv
%   test_conn   *A4B6157319038724E3560894F7F932C8886EBFCF   Y
localhost   test_conn       Y

尝试过的可能解决方案:

  • 用“127.0.0.1”替换“localhost”
  • 将“主机”列更改为“本地主机”(我创建的用户将“%”作为主机,如选择语句所示)
  • 用“%”替换“localhost”
mysqli xampp
© www.soinside.com 2019 - 2024. All rights reserved.