macOS下重置MySQL密码遇SQL语法错误ERROR 1064如何解决?
解决MySQL重置root密码时的1064语法错误
错误根源
你执行的UPDATE语句中,密码字段的赋值语法与当前MySQL版本不匹配。不同版本的MySQL对用户密码存储的字段名、加密方式要求不同,这是导致语法报错的核心原因。
针对性修复方案
适用于MySQL 8.0及以上版本
MySQL 8.0+已废弃PASSWORD()加密函数,用户表的密码存储字段改为authentication_string,且官方推荐使用ALTER USER语句替代UPDATE操作,更安全可靠:
- 保持MySQL安全模式的登录状态
- 执行以下命令重置密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '2402'; FLUSH PRIVILEGES;
如果执行ALTER USER时提示用户不存在,先清空旧密码字段再重试:
UPDATE mysql.user SET authentication_string = '' WHERE User = 'root' AND Host = 'localhost'; FLUSH PRIVILEGES;
之后再次执行ALTER USER语句即可。
适用于MySQL 5.7及更早版本
旧版本使用Password字段存储密码,且需要通过PASSWORD()函数加密明文密码,正确的UPDATE语句为:
UPDATE mysql.user SET Password = PASSWORD('2402') WHERE User = 'root' AND Host = 'localhost'; FLUSH PRIVILEGES;
验证操作
- 退出MySQL命令行,重启MySQL服务
- 使用新密码登录验证:
mysql -u root -p
输入密码2402,若成功登录则说明重置生效。
内容的提问来源于stack exchange,提问作者Uday Bhargav
相关产品推荐
相关产品推荐

