我刚刚安装了Ubuntu 16.04并在其上安装了Web服务器.一切运作良好,但我无法访问数据库.
即使我创建新用户并授予所有权限,我也无法创建数据库
在PHP中我收到此错误:
sqlSTATE[HY000] [1698] Access denied for user 'root'@'localhost'
当我尝试登录终端时,它可以工作,但在PHP和PHPmyadmin中没有.
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 举报,一经查实,本站将立刻删除。