【问题标题】:Access denied for user 'root'@'localhost' to database 'drupal'用户 'root'@'localhost' 拒绝访问数据库 'drupal'
【发布时间】:2018-10-14 18:19:36
【问题描述】:

我正在使用尚未配置自己的 MySQL 服务器,在 SQL 方面我有点菜鸟。

我已经创建了一个这样的数据库:

root@localhost:~# mysqladmin -u root -p create drupal

然后尝试像这样授予权限:

root@localhost:~# mysql -u root -p

MariaDB [(none)]> GRANT ALL PRIVILEGES ON drupal.* TO root IDENTIFIED BY ...;

但是得到这个错误:

ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'drupal'

[更新] 所有形式的 GRANT 命令都会出现此错误。

但根据 SHOW GRANTS 我应该有特权:

MariaDB [(none)]> SHOW GRANTS;
+--------------------------------------------------------------------------- 
-------------------------------------------+
| Grants for root@localhost                                                                                            
|
+--------------------------------------------------------------------------- 
------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD 
'*...' |
+--------------------------------------------------------------------------- 
-------------------------------------------+
1 row in set (0.00 sec)

MySQL版本为:mysql Ver 15.1 Distrib 10.1.26-MariaDB 在 Debian 9.5 上

【问题讨论】:

    标签: mysql


    【解决方案1】:

    问题是root用户没有Grant权限。

    SELECT host,user,password,Grant_priv,Super_priv FROM mysql.user;
    

    我用这个命令修复了它:

    UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
    FLUSH PRIVILEGES;
    GRANT ALL ON *.* TO 'root'@'localhost';
    

    您必须退出并重新登录才能使用。

    【讨论】:

      猜你喜欢
      • 2015-09-03
      • 2014-06-14
      • 1970-01-01
      • 2013-07-28
      • 2023-03-20
      • 2017-10-04
      • 2015-12-26
      相关资源
      最近更新 更多