MySQL5.7 修改 root 用户 host 报错:Operation RENAME USER failed for 'root'@'localhost'

weixin_36957402 2017-01-11 09:29:37
最近遇到一个奇怪的事, MySQL 安装好相关业务账号建立之后,想限制 root 为本地登录。 话说类似操作基本每个月都会操作好几次,平时都是正常的,环境版本与此次的基本统一。

无论是使用命令

RENAME USER 'root'@'%' TO 'root'@'localhost';
还是 navicat 修改 root 账号的 host 值,都会报错:

ERROR 1396 (HY000): Operation RENAME USER failed for 'root'@'localhost'
将此处的 localhost 换成 127.0.0.1 重新操作一遍,两种方法均正常修改,无报错。 直接修改 mysql.user 表却是可以的:

UPDATE mysql.user SET host = 'localhost' WHERE user = 'root';
flush privileges;
数据库版本 MySQL5.7,OS:ubuntu16.04,本地 host 已设置 127.0.0.1 localhost

目前找了一圈,官方文档上面也没有对应的介绍,其他的也都是介绍通过改表实现,但是并没有说明原因。 不知道大家有木有遇到过类似的错误,可能的原因是神马,虽说改 user 表可以达到我要的效果, 但是还想弄清楚一下原因。
...全文
1711 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
rucypli 2017-01-11
  • 打赏
  • 举报
回复
应该是自己不能rename自己
weixin_36957402 2017-01-11
  • 打赏
  • 举报
回复
引用 1 楼 rucypli 的回复:
应该是自己不能rename自己
我修改的时候确实是使用root用户本身,但是将host改为127.0.0.1就是可以的。 同时我试了一下用root去修改其他用户的host,无论是修改成localhost还是127.0.0.1,都是可以的。 用其他有权限的用户来修改root的host,同样是修改成localhost的时候报错,修改成127.0.0.1都是好的。 目前出现问题的情况简单来说就是: 不管用什么账号去将root的host修改成localhost都会报错的,但是修改非root账号的host为localhost则一切正常。

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧