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 代码。通过重新更新权限就能解决这个问题。