我正在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上
答案 0 :(得分:1)
问题是root用户没有授予权限。
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';
您必须先注销然后再登录,才能正常工作。