MAC下登录mysql8错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
pycharm本地数据库,莫名出现一个错误,总会提示授权失败:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
此时切换到本地数据库,使用之前设置的密码无法进入,提示同样的错误。
解决方案:
既然现在没法登录到数据库中,改密码和添加用户等操作也无从谈起。好在MySQL中还提供了一种免去密码校验进入数据库的方法,我们就先使用这种方法登入到数据库中。然后将默认密码替换掉,上面的问题就可以解决掉啦~具体操作如下:
1、打开系统偏好设置,找到mysql,点进去关闭mysql服务。
2、打开一个终端,输入以下命令
```
$ cd /usr/local/mysql/bin
$ sudo su
```
输入本机登录密码
然后便可以看到终端命令变成这个开头: sh-3.2#
输入以下命令
```
$ ./mysqld_safe --skip-grant-tables &
```
之后边可以以安全模式进入数据库了。
3、现在打开一个新的终端 ,输入以下命令:
```
$ mysql -u -root
```
然后不需要密码就进入数据库了。
4. 修改密码
先切换到 mysql 库
```
mysql> use mysql;
```
修改root账户密码。注意,此时需要将root账户密码置空,不能使用8.0版本之前的方法直接修改密码,之前的方法在8.0版本上会报错。
输入如下命令置空root账户密码
```
mysql> update user set authentication_string='' where user='root';
```
此时不要使用 alter 来修改密码,否则会报错。
5,退出登录
```
mysql> exit
```
6,重新登录mysql
```
$ mysql -u root -p
```
此时不需要输入密码,直接回车即可
7,重置root密码
进入mysql库
```
mysql> use mysql;
```
重置密码
```
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
```
然后刷新权限
```
flush privileges;
```
操作完以上步骤,就可以用新密码登录了。
我的笔记