【发布时间】: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');看看还有没有错误?