【问题标题】:mySQL Access Denied Error After New User Created创建新用户后 mySQL 访问被拒绝错误
【发布时间】:2015-04-23 00:18:13
【问题描述】:

我用mysql做了一些项目,没有问题。今天我的朋友教我如何在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;

testing 账户不见了,但现在我有 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 () );
}

【问题讨论】:

  • 您只授予了 cc 数据库的权限,但您正在尝试访问数据库 'login'。
  • @ChipDean 我删除了那个用户,我在我的项目中使用默认的 root 帐户。我检查了授权,root 用户拥有所有授权 localhost。
  • @Dosher 可以复制并粘贴您在使用 root 登录时收到的错误吗?
  • @Muggles 连接失败:用户 ''@'localhost' 拒绝访问数据库 'login'。奇怪的是它说用户“@”......它没有显示用户名。
  • @Dosher try $conn = mysqli_connect ('localhost', 'root', '', 'login');看看还有没有错误?

标签: php mysql


【解决方案1】:

您使用看起来为空的 $_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 () ); 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多