mysql_connect(): admin '@'localhost'(使用密码:YES)


mysql_connect(): Access denied for user 'adminryan'@'localhost' (using password: YES)

我是PHP和mySQL的新手,我一直在尝试通过xampp与apache和mySQL服务器创建登录。我一直得到这个错误有人能解释一下这个错误到底是什么意思吗?我见过一些人问这个问题,但答案通常只与他们的代码有关。我也将提供我的代码。如果有人对我所做的感兴趣的话,我一直在看这个youtube系列教程http://www.youtube.com/watch?v=NuiTzSdGmKM。希望有人能帮忙,谢谢!我的代码如下:

<?php
$username = "yolo";
$password = "swag";
$hostname = "localhost";
$dbhandle = mysql_connect($hostname, $username, $password) or die("Could not connect to database");
$selected = mysql_select_db("login", $dbhandle);
$myusername = $_POST['user'];
$mypassword = $_POST['pass'];
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$query = "SELECT * FROM logon WHERE Username='$myusername' and Password='$mypassword'";
$result = mysql_query($query);
$count = mysql_num_rows($result);
mysql_close();
if($count==1){
    echo 'It worked!';
}

?>

错误是关于建立到mySQL服务器的连接。
用户adminryan无法连接到服务器localhost,尝试连接时使用了密码。这可能有几个原因,比如:

  • 用户adminryan不存在
  • 提供的密码错误。
  • 提供的服务器名错误
  • 用户adminryan没有权限
  • 等等…

你的代码说:

$dbhandle = mysql_connect($hostname, $username, $password) or die("Could not connect to database");

所以我想知道为什么你看到你给出的错误而不是"无法连接到数据库"。
我希望mysql_connect将返回FALSE,因此die("Could not connect to database")将被执行。(die(...)之后的代码都不会执行)

$query = ...无关
我不能,但我会投票否决MuhammadAli和artiticphoenix的评论,因为他们对你提供的错误没有任何意义。
在你的代码之后,这一行将不会被执行。

为其他遇到此错误并确认用户名、密码和数据库确实存在的人提供可能的解决方案的目的。我遇到了同样的错误,当重组我的请求时,我能够得到想要的结果。

$username = 'username';
$password = 'password';
$db = mysql_connect('localhost', $username, $password);
mysql_select_db("database",$db);

在我的实例中,我有完整的用户名和数据库正在使用。所以它似乎取决于你的cpanel帐户的用户名。例如,如果我的域名cpanel登录是mydata,那么我的用户名将是mydata_username,我的数据库将是mydata_database。

现在我不知道这是否重要,我还没有反过来测试过,我已经有过几次这个错误,这是一个对我有效的解决方案。我不知道为什么我不是专家,但它确实有效,值得其他遇到同样问题的人一试。

这段代码和我之前类似于这个错误的代码之间的唯一区别是我使用了引号。这段代码使用了单引号',前面的代码使用了双引号'。