错误现象:
从MySQL官网下载MySQL5.7.28 dmg安装包后双击自动进行安装好后。
输入临时密码,总是提示ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 的错误。
解决办法:
1)关闭MySQL服务(两种方式关闭服务)
第一种:系统-->偏好设置中-->点击MySQL
第二种:终端中输入命令执行
sudo /usr/local/mysql/support-files/mysql.server stop
2)进入mysql默认安装目录设置跳过验证
# 先进入mysql文件夹:
cd /usr/local/mysql/bin/
# 设置权限,如果电脑有设置开机密码,在输入此句后会要求输入密码。输入密码后按回车确认
sudo su
#跳过验证
./mysqld_safe --skip-grant-tables &
3)重置密码
# 打开一个新的终端,输入
/usr/local/mysql/bin/mysql -u root -p
# 然后会要求输入密码,因为此时根本没有密码,所以直接点确认,显示以下信息表示成功进入mysql
# 以下为提示信息
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 20
Server version: 5.7.11
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
# 现在设置新密码,注意要打引号:
UPDATE mysql.user SET authentication_string=PASSWORD('123456') where User='root';
# 回车确认,显示以下信息表示修改密码成功
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 1
# 然后刷新一下,让上述修改生效:
flush privileges;
# 刷新成功会显示以下信息:
Query OK, 0 rows affected (0.01 sec)
4)重启MySQL服务,用新密码成功连接MySQL。但进行SQL语句操作时,会提示以下错误信息:
ERROR 1820 (HY000) :You must reset your password using
AlTER USER statement before executing this statement.
解决办法:还需再次重置新密码,直接输入:
SET PASSWORD = PASSWORD('123456');
5)修改成功后即可进行SQL语句的操作
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
6) 到此,此问题完美解决~