错误:拒绝访问用户' www-data' @' localhost'

时间:2016-04-19 12:52:54

标签: php mysql pdo

我在lubuntu虚拟机上运行一个mysql数据库(通过phpmyadmin管理),该虚拟机本身位于mac 10.6上。 当我在我的网页上收到以下错误时,一切都工作顺利,直到更早,(并且我没有触及登录代码的任何部分!)

  

Erreur:SQLSTATE [28000] [1045]访问被拒绝用户' www-data' @' localhost' (使用密码:否)

我不明白这个错误的来源,因为我没有在phpmyadmin上有一个名为www-data的用户,我的文件应该使用数据库上的root帐户:

$dbname = 'name';
$dbuser = 'root';
$dbpass = '*****';
$dbhost = 'localhost';
try{
    $linkpdo = new PDO('mysql:host='.$dbhost.';'.$dbname.', '.$dbuser.' , '.$dbpass);
    $linkpdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (Exception $e) {
    die('Erreur : '.$e->getMessage());
}

经过一些谷歌搜索后,我看到人们修改了他们的config.conf文件,但我不知道如何或为什么。

4 个答案:

答案 0 :(得分:7)

使用双引号字符串和连接的正确参数,使用双引号字符串和$variable扩展更容易构建。

    $linkpdo = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
    $linkpdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

答案 1 :(得分:5)

<?php

$dsn = 'mysql:dbname=name;host=localhost';
$user = 'root';
$password = '*****';


try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}
?>

试试这段代码。请查看此链接以获取更多详细信息http://php.net/manual/en/pdo.connections.php

答案 2 :(得分:3)

用户和密码是单独的参数http://php.net/manual/en/pdo.connections.php

所以在这里取出连接 - &gt; .', '.$dbuser.' , '.$dbpass

连接应该是:

$linkpdo = new PDO('mysql:host='.$dbhost.';dbname='. $dbname, $dbuser, $dbpass);    

答案 3 :(得分:2)

试试这个:

 $linkpdo = new PDO('mysql:host='.$dbhost.';dbname='.$dbname , $dbuser, $dbpass);