Mysql安装过程ERROR 1045 (28000): Access denied for user 'mysql'@'localhost' (using password: NO)

本人windows系统下安装无需解压版的mysql-5.7.19-winx64,

以管理员身份运行cmd; 进入mysql文件下的bin目录(这里我的目录为D:\mysql\mysql-5.7.19-winx64, 所以我的命令是cd D:\mysql\mysql-5.7.19-winx64\bin); 执行命令 mysqld  -install;  执行命令 mysqld  --initialize; 执行命令 net start mysql开启Mysql服务; 执行命令sql  -u root  -p然后回车,之后会让输入密码,但是我们不知道密码,所以直接回车但是出现以下错误:

ERROR 1045 (28000): Access denied for user 'mysql'@'localhost' (using password: NO)

可是随便胡乱输入密码时,会出现如下错误:

 

ERROR 1045 (28000): Access denied for user 'mysql'@'localhost' (using password: YES)

查询了网上各种方法后,发现在windows下Mysql5.7之后为了安全性免安装模式下不能在初始化时用root无密码登录,解决方案如下:

在上述的mysqld –initialize方法生成的data文件里的.err文件里,会有生成root的临时初始密码,查询暂时性密码,但是这个密码用一次后就会过期不能使用了。下面我们就来改这个密码:
先关闭mysql服务,net stop mysql
修改你的mysql的配置文件my.ini或者my-default.int,根据你自己的配置看修改哪个文件
在[mysqld]节点上加skip-grant-tables 
主要作用是:跳过表中的验证,可以无密码登陆。
开启mysql服务(net start mysql),用可视化客户端进入mysql,我使用的可视化的客户端mysqlFront,你们可以自己去百度找。
打开mysql下的user表,将password_expired字段的Y改成N;主要是改变密码是否有效的,有Y/N 两种,y表示失效,n表示有效,改完以后记得保存。 

 

========================================================================

root密码更改:
(1)在MySQL 8.04前,执行:SET PASSWORD=PASSWORD('[修改的密码]');
但是MySQL8.0.4开始,这样默认是不行的。因为之前,MySQL的密码认证插件是
“mysql_native_password”,而现在使用的是“caching_sha2_password”。
(2)在MySQL 8.04之后, 执行语句:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';(注意一定要有分号)即可进行密码更改。

 

 

 

你可能感兴趣的:(Mysql安装过程ERROR 1045 (28000): Access denied for user 'mysql'@'localhost' (using password: NO))