正确的姿势:
ALTER USER "account"@"%" IDENTIFIED BY "你的新密码"; # 执行成功了之后记得 flush 让其生效。 flush privileges;
查询当前用户,确保有权限:
select user(); # 查看都有哪些用户: use mysql; select user,host from user;
这样的方式在mysql8下面会报错:
mysql> use mysql; mysql> update user set password=password('123') where user='account' and host='%'; mysql> flush privileges; 报错信息: 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
仅是使用,就没有详细研究出错的原因,猜测 mysql8 对安全级别要求更高了。
希望能帮助到遇到相同问题的小伙伴。
如果你了解具体原因,也欢迎反馈。平时使用my比较多,没有遇到这么多问题,最近升级 mysql8 使用上发现和 my 还是有不少差别的。