PHP无法连接到MySQL

时间:2010-11-02 23:11:28

标签: php mysql mysql-error-1045

$link = mysql_connect('localhost', $username, $password);
if (!$link) 
{
     die('Could not connect: ' . mysql_error());
}

我收到此错误:

无法连接:用户'www-data'@'localhost'拒绝访问(使用密码:否)

为什么?

编辑:

$username="root";
$password="root";
$database="test";

    function Save($name)
    {
        $link = mysql_connect('localhost', $username, $password);
        if (!$link) {
            die('Could not connect: ' . mysql_error());
        }
        @mysql_select_db($database) or die( "Unable to select database");
        $query = "INSERT INTO test (name)" .
                 "VALUES ('" . $name . "')";
        mysql_query($query);
        mysql_close();
    }

5 个答案:

答案 0 :(得分:5)

您是否提供了$username$password值?像这样的东西?

$username="root";
$password="";

答案 1 :(得分:2)

您的$password变量为空((using password: NO)),然后您尝试在没有密码的情况下登录www-data用户,并且服务器结果被拒绝访问。这个用户可以设置密码。

答案 2 :(得分:1)

从您的编辑中,问题似乎是一个范围问题。

您正在尝试在函数内部建立连接,其中$username$password$database变量是在该函数之外定义的。

我建议您阅读本手册的Variable Scope部分,并在问题评论中提出错误报告,如@netcoder所示。

答案 3 :(得分:0)

我认为问题在于,您尝试连接数据库两次。 在代码的某处,您已经尝试使用用户名“www-data”连接到数据库......再次使用用户名“root”连接到数据库。

您使用用户名“www-data”提供的密码也是错误的,即您收到错误消息。

答案 4 :(得分:0)

$username="root";
$password="root";
$database="test";

    function Save($name)
    {
        global $username;
        global $password;
        global $database;

        $link = mysql_connect('localhost', $username, $password);
        if (!$link) {
            die('Could not connect: ' . mysql_error());
        }
        @mysql_select_db($database) or die( "Unable to select database");
        $query = "INSERT INTO test (name)" .
                 "VALUES ('" . $name . "')";
        mysql_query($query);
        mysql_close();
    }