版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhuyunier/article/details/85698259
1、问题描述
使用root账号登录数据库,在使用命令给新创建新用户赋予权限时候报错
1045 - Access denied for user 'root'@'%' (using password: YES)
2、问题定位
- 使用以下命令查询user表中root用户是否有grant和super权限:
mysql> select Host,User,Grant_priv,Super_priv from mysql.user;
+-----------------------+-----------+------------+------------+
| Host | User | Grant_priv | Super_priv |
+-----------------------+-----------+------------+------------+
| localhost | root | Y | Y |
| localhost.localdomain | root | Y | Y |
| 127.0.0.1 | root | Y | Y |
| ::1 | root | Y | Y |
| localhost | | N | N |
| localhost.localdomain | | N | N |
| % | root | N | N |
| % | skylight | N | N |
| % | skylight1 | N | N |
+-----------------------+-----------+------------+------------+
9 rows in set
mysql>
- 查询结果显示root没有grant权限和super权限,使用以下命令将root的两个权限更新为Y,并执行FLUSH PRIVILEGES命令刷新权限,让分配的权限生效。
mysql> update mysql.user set Grant_priv='Y',Super_priv='Y' where user = 'root' and host = '%';
Query OK, 1 row affected
Rows matched: 1 Changed: 1 Warnings: 0
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected
mysql>
3、给创建的新用户赋予权限
权限生效后,便可以创建用户,给创建的用户分配权限了
mysql> CREATE USER 'skylight2 '@'%' IDENTIFIED BY 'skylight2';
Query OK, 0 rows affected
mysql> GRANT ALL PRIVILEGES ON *.* TO 'skylight2'@'%' IDENTIFIED BY 'skylight2' WITH GRANT OPTION;
Query OK, 0 rows affected
mysql>