修改mysql的root用户密码总是报语法错误

风流黄鹤 2018-06-03 10:04:42
想要修改一下mysql的root账号密码,之前安装mysql的时候默认密码是root,现在想要修改成admin。执行命令
set password for root@localhost = password('admin');

执行错误,报下面这个错误。
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'password('admin')' at line 1
想到有可能新密码是mysql的保留字/关键字,因此将单引号换成反引号,结果还是报同样的语法错误。
set password for root@localhost = password(`admin`)	


后来又试了下面这条命令,还是报同样的错误。
UPDATE user SET password=PASSWORD(`admin`) WHERE user='root'


没辙了,请教各位大侠这是什么问题?
...全文
5101 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
邻家小白 2020-12-22
  • 打赏
  • 举报
回复 2
引用 2 楼 crynono 的回复:
ALTER USER 'root'@'localhost' IDENTIFIED BY '!Password1'; 推荐使用这个语句试试
亲测有效,BY后面写自己的密码
Trulyll 2020-06-01
  • 打赏
  • 举报
回复
请问楼主问题解决了吗?我现在也碰到了这个问题没办法解决
开源大于节流 2020-01-10
  • 打赏
  • 举报
回复 1
你的应该是mysql8以上的版本,你的那个修改语句已经不适用了。可以参考这篇文章。
K G 2019-06-27
  • 打赏
  • 举报
回复
后面那句SQL语言我笑了
pink_soda 2019-06-17
  • 打赏
  • 举报
回复 2
问题: mysql> set password for root@localhost = password('123'); ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'password('123')' at line 1 解决方法: 使用如下语句即可解决 alter user 'root'@'localhost' identified by  '123'; 原文网址:https://blog.csdn.net/hunt_er/article/details/82901331 --------------------- 作者:ds_surk 来源:CSDN 原文:https://blog.csdn.net/hunt_er/article/details/82901331 版权声明:本文为博主原创文章,转载请附上博文链接!
你说了算? 2021-07-11
  • 举报
回复
@pink_soda 感谢!!!
noDr_butTry 2018-07-28
  • 打赏
  • 举报
回复
如果因为skip-grant-tables修改不了密码可以 flush privileges 一下,虽然我也是百度不知所以然
风流黄鹤 2018-06-25
  • 打赏
  • 举报
回复
引用 3 楼 qq_20203755 的回复:
你的mysql版本是多少?
我装的是一个比较新的版本,mysql 8.0.11
风流黄鹤 2018-06-25
  • 打赏
  • 举报
回复
引用 2 楼 crynono 的回复:
ALTER USER 'root'@'localhost' IDENTIFIED BY '!Password1';
推荐使用这个语句试试
这是一种方法,不过我想知道的是为啥我上面的两种方法不行
风流黄鹤 2018-06-25
  • 打赏
  • 举报
回复
引用 1 楼 ckc 的回复:
admin用双引号试下
试过了,加双引号是不行的
Rotel-刘志东 2018-06-22
  • 打赏
  • 举报
回复
修改完flush privileges
Rotel-刘志东 2018-06-22
  • 打赏
  • 举报
回复
UPDATE user SET password=PASSWORD(`admin`) WHERE user='root'
mysql 5.6版本可以用
UPDATE user SET password=PASSWORD('admin') Where user='root';
mysql 5.7版本可以用

update user set authentication_string=password("admin") where user="root";
iamboy_11 2018-06-20
  • 打赏
  • 举报
回复
怀疑你的当前数据库不是user,所以导致UPDATE user SET password=PASSWORD(`admin`) WHERE user='root'修改不了
流浪的小贝 2018-06-13
  • 打赏
  • 举报
回复 3
引用 2 楼 crynono 的回复:
ALTER USER 'root'@'localhost' IDENTIFIED BY '!Password1'; 推荐使用这个语句试试
我也是同样的问题,用了这个哥们的方法,最终成功了,弄了半个小时。
huangzhimeng 2018-06-06
  • 打赏
  • 举报
回复
mysql从5.7后 把password改为authentication_string update user set authentication_string=password("testpasswd") where user="root";
ckc 2018-06-04
  • 打赏
  • 举报
回复
admin用双引号试下
伟洪winni 2018-06-04
  • 打赏
  • 举报
回复
你的mysql版本是多少?
crynono 2018-06-04
  • 打赏
  • 举报
回复
ALTER USER 'root'@'localhost' IDENTIFIED BY '!Password1'; 推荐使用这个语句试试

56,803

社区成员

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

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