我刚刚安装了 Ubuntu 16.04 (Xenial Xerus) 并在上面安装了 Web 服务器。一切正常,但我无法访问数据库。即使我创建新用户并授予所有权限,我也无法创建数据库
在 PHP 中,我收到此错误:
SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost'
当我尝试登录终端时,它可以工作,但在 PHP 和 phpMyAdmin 中却不行。
PHP代码:
protected $host = '127.0.0.1';
protected $db = 'dbname';
protected $name = 'root';
protected $pass = 'root';
protected $conn;
private static $settings = array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
);
public function __construct() {
try {
$this->conn = new PDO("mysql:host=$this->host;dbname=$this->db", $this->name, $this->pass, self::$settings);
} catch (PDOException $e) {
echo $e->getMessage();
}
}
原文由 lamka02sk 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有
'user'@'%'
获得相同的错误提及'user'@'localhost'
拒绝访问时具有所有权限。所以我用所有权限创建'user'@'localhost'
,然后刷新,甚至重启服务都无济于事。最后我将
$host = '127.0.0.1';
更改为$host = 'localhost';
。现在它起作用了!