Mac mysql重置密码遇到ERROR 1045 (28000)与ERROR 1064 (42000)

在mac上使用brew install mysql下载了最新的mysql之后,遇到了两个问题:
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using passwor:yes)
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…

一般而言应该是密码出现了问题

1.修改配置文件进入mysql:

根据博客https://blog.****.net/StillCity/article/details/88558039找到自己的配置文件my.cnf,我的是在这个目录下:
Mac mysql重置密码遇到ERROR 1045 (28000)与ERROR 1064 (42000)
vim /usr/local/etc/my.cnf进入该文件
在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程,保存文档退出。
Mac mysql重置密码遇到ERROR 1045 (28000)与ERROR 1064 (42000)
重启mysql:mysql.server restart
重启结束,输入mysql -u root -p,直接enter进入mysql

2.修改密码:

使用以前的修改密码方式比如:
mysql> update user set password=password(“你的新密码”) where user=“root”;
都会出现
Mac mysql重置密码遇到ERROR 1045 (28000)与ERROR 1064 (42000)
原因:
1.在 MySQL5.7 之后 user 表的 password 已换成了authentication_string
2.password() 加密函数已经在 8.0.11 中移除了,使用 MD5() 函数代替

在修改密码前,先选择数据库:
mysql> use mysql

然后使用更新后的修改密码方式:
mysql> update user set authentication_string=MD5(“你的新密码”) where user=“root”;

解决问题:)
Mac mysql重置密码遇到ERROR 1045 (28000)与ERROR 1064 (42000)