微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – SQLSTATE [HY000] [1698]访问被拒绝用户’root’@’localhost’

我刚刚安装了Ubuntu 16.04并在其上安装了Web服务器.一切运作良好,但我无法访问数据库.
即使我创建新用户并授予所有权限,我也无法创建数据库
PHP中我收到此错误

sqlSTATE[HY000] [1698] Access denied for user 'root'@'localhost'

当我尝试登录终端时,它可以工作,但在PHPPHPmyadmin中没有.

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();
    }
}

解决方法:

事实证明,你不能再使用5.7中的root用户而不会成为sudoer.这意味着你不能再运行MysqL -u root了,而是必须做sudo MysqL -u root.

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

有关详细信息,请参阅this答案.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐