【发布时间】:2021-07-06 06:12:25
【问题描述】:
我刚刚安装了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();
}
}
【问题讨论】:
-
没有代码...我只是用网络服务器、数据库等重新安装了整个 Ubuntu...现在我需要做的一件事是通过 phpmyadmin 或 PHP 在用户名 root 下使用密码登录根...
-
在此处发布您的新用户创建和授予 priv 相关代码。
-
创建用户:CREATE USER 'username'@'localhost' IDENTIFIED BY 'pass';并添加权限: GRANT ALL PRIVILEGES ON * 。 * TO 'newuser'@'localhost';然后 FLUSH PRIVILEGES;...当我这样做时,我可以登录但不能创建数据库....
-
Grant priv 应该像这样,因为您的用户名是
username:GRANT ALL PRIVILEGES ON * . * TO 'username'@'localhost'; -
我在写评论时犯了一个错误...正如我所说:除了终端,我无法以 root 身份登录,但作为新用户,即使拥有所有权限,我也无法创建数据库
标签: php mysql authentication root