gpt4 book ai didi

php - 创建新用户后 mySQL 访问被拒绝错误

转载 作者:行者123 更新时间:2023-11-29 22:30:54 25 4
gpt4 key购买 nike

我用mysql做了一些项目,没有问题。今天我的 friend 向我展示了如何在 mysql 中创建用户:

Create database cc;
use cc
CREATE USER 'testing'@'localhost' IDENTIFIED BY 'pass';
GRANT ALL ON cc.* TO 'testing'@'localhost';

现在我尝试使用我的项目,但出现以下错误:

Connection failed: Access denied for user ''@'localhost' to database 'login'

我删除了之前创建的用户:

drop user 'testing'@'localhost';

我设法删除了该用户,我用以下命令检查了用户:

select User from mysql.user;

测试帐户消失了,但现在我有 3 个 root 帐户,我不明白为什么。由于我删除了该“测试”帐户,因此我再次尝试了我的项目,但出现了相同的错误。为什么我不能再使用默认的'root'帐户?

编辑:

PHP 代码的错误部分:

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "login";


// Error is in following line
$conn = mysqli_connect ( $servername, $username, $password, $dbname );

我也尝试过这个:

GRANT ALL ON login.* TO 'root'@'localhost';

show grants;

结果是:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
GRANT ALL PRIVILEGES ON login.* TO 'root'@'localhost'

看起来“root”可以访问所有内容。为什么我会收到错误?

编辑2:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "login";
$username = $_POST['username'];
$pass = $_POST['password'];

// Create connection
$conn = mysqli_connect ( $servername, $username, $password, $dbname );
// Check connection
if (! $conn) {
die ( "Connection failed: " . mysqli_connect_error () );
}

最佳答案

您使用显示为空的 $_POST['username'] 数据覆盖了之前设置的 $username 变量。因此 mysqli_connect 尝试使用空白用户名连接到数据库。

要纠正此问题,请将 $username 变量重命名为不冲突的其他名称。

示例:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "login";
$username_post = $_POST['username'];
$pass = $_POST['password'];

// Create connection
$conn = mysqli_connect ( $servername, $username, $password, $dbname );
// Check connection
if (! $conn) {
die ( "Connection failed: " . mysqli_connect_error () );
}

关于php - 创建新用户后 mySQL 访问被拒绝错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29801268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com