当前位置: 首页 > 知识库问答 >
问题:

SQLSTATE[HY000][1698]拒绝用户“root”@“localhost”访问

柳杰
2023-03-14
SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost'
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();
    }
}

共有1个答案

皇甫乐
2023-03-14

事实证明,在5.7中,如果不成为sudo'er就不能再使用root用户了。这意味着您不能再只运行mysql-u root,而必须执行sudo mysql-u root

这还意味着,如果您在GUI(或者任何非命令行应用程序)中使用root用户,它将不再工作。要使其工作,您必须创建一个具有所需特权的新用户,并使用该用户。

有关更多细节,请参见此答案。

 类似资料: