SQLSTATE\[HY000\] \[1698\] 用户 'root'@'localhost' 的访问被拒绝

新手上路,请多包涵

我刚刚安装了 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 许可协议

阅读 745
1 个回答

我有 'user'@'%' 获得相同的错误提及 'user'@'localhost' 拒绝访问时具有所有权限。所以我用所有权限创建 'user'@'localhost' ,然后刷新,甚至重启服务都无济于事。

最后我将 $host = '127.0.0.1'; 更改为 $host = 'localhost'; 。现在它起作用了!

原文由 Rocky Zairil 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题