0
点赞
收藏
分享

微信扫一扫

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

南陵王梁枫 2022-02-14 阅读 137
mysqlide5e

mysql 创建用户提示ERROR 1044 (42000): Access denied for user 'root'@'localhost'


同事反馈一台 MySQL5.6 创建用户无法授权,提示[ERROR 1044 (42000): Access denied for user 'root'@'localhost'] 。如下所示:

mysql> grant all on xxx.* to xxx@'localhost' identified by 'xxx';
ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'xxxx'
mysql>

root用户应该不会权限才对。查看一下权限

[root@localhost][mysql]> select current_user() from dual;
+----------------+
| current_user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

[root@localhost][mysql]> select host,user from user where user='root';
+-----------+------+
| host | user |
+-----------+------+
| % | root |
| localhost | root |
+-----------+------+
2 rows in set (0.00 sec)

[root@localhost][mysql]> show grants for root;
+--------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@% |
+--------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' WITH GRANT OPTION |
+--------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

看着没什么问题。只能看下Grant_priv权限了。

[root@localhost][mysql]> SELECT host,user,password,Grant_priv,Super_priv FROM mysql.user;
+-----------+---------+-------------------------------------------+------------+------------+
| host | user | password | Grant_priv | Super_priv |
+-----------+---------+-------------------------------------------+------------+------------+
| % | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | N | Y |
+-----------+---------+-------------------------------------------+------------+------------+
1 rows in set (0.00 sec)

发现 grant_priv 权限为N,也就是说root用户不能授权给其他用户,改为Y试一下

[root@localhost][mysql]> UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
[root@localhost][mysql]> FLUSH PRIVILEGES;

再次尝试添加用户,没问题了。

mysql>  grant all on xxx.* to xxx@'192.168.%' identified by 'test1249';
Query OK, 0 rows affected, 1 warning (0.00 sec)


mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)



举报

相关推荐

0 条评论