mysql 的root 用户无法授权,navicat 远程授权提示1044解决方案

先看解决方案

#------------mysql root 用户无法赋权问题解决 --------
1,登录  mysql -u root -p
2,use mysql; 选择mysql数据库
3,执行以下操作(查询用户的赋权权限,更改赋权权限 ,刷新生效)
mysql> select user,host,grant_priv from user;
+---------------+-----------+------------+
| user          | host      | grant_priv |
+---------------+-----------+------------+
| root          | localhost | Y          |
| mysql.session | localhost | N          |
| mysql.sys     | localhost | N          |
| root          | %         | N          |
| xc_admin      | %         | N          |
+---------------+-----------+------------+
5 rows in set (0.00 sec)

mysql> update user set grant_priv='Y' where user = 'root';'
Query OK, 1 row affected (0.00 sec)
Rows matched: 2  Changed: 1  Warnings: 0

mysql> flush privileges;#刷新权限
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,grant_priv from user;
+---------------+-----------+------------+
| user          | host      | grant_priv |
+---------------+-----------+------------+
| root          | localhost | Y          |
| mysql.session | localhost | N          |
| mysql.sys     | localhost | N          |
| root          | %         | Y          |
| xc_admin      | %         | N          |
+---------------+-----------+------------+
5 rows in set (0.00 sec)

解析:通过第一个查询语句可以看出 默认的root 在非本地权限中的grant_priv(赋权权限)是关闭的。

可以理解为:用root用户在本地的机器上(安装mysql的那台机器)是能赋权的。其他IP赋权是默认不允许的。可能为了安全性考虑

那我们使用工具远程创建用户就会出现1044 代码。通过重新更新权限就能解决这个问题。

 

上一篇:安全版普通用户获取系统对象的访问权限


下一篇:mysql