Mysql服务器无法启动以及ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO) 错误

起因:将mysql5.6升级到mysql5.7(压缩版)

一、数据库备份,mysql5.6删除

憨憨操作:先将数据库备份;然后net stop mysql停止服务;然后删除mysql5.6

二、mysql5.7下载(压缩版)

官网下载,解压改名
mysql,然后启动net start mysql
然后就报错MySQL 服务无法启动 服务没有报告任何错误
原因分析:mysql5.7解压就可以用了吗?

初始化mysql

以管理原身份进入dos页面,然后进入mysql目录。编写命令:mysqld --initialize
效果:mysql目录下多了data文件夹
重新启动服务,OK

登录:mysql -u root -p

输入密码,报错ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)
解决方案:修改密码

三、修改mysql root用户密码

1.使用命令mysqld --skip-grant-tables 目的:启动MySQL服务的时候跳过权限表认证。
2.mysql -u root -p直接回车进入mysql
3.尝试两种方式修改:
A. set password for 用户名@localhost = password(‘新密码’);
失败:提示–skip-grant-tables状态不能执行
B.update user set password=password(‘123’) where user=‘root’ and host=‘localhost’;
mysql5.7 user表没有password字段,只有authentication_string字段
所以命令更改:update user set authentication_string=password(‘123’) where user=‘root’ and host='localhost
4.使用命令flush privileges

本质上将user和privilege表中的用户信息/权限设置提到内存

作用:也就是不需要重启mysql服务,更改密码就生效
然后重登OK

四、总结

遇到问题就百度,总能解决的。

你可能感兴趣的:(数据库)