前因
windows因为一些原因导致重装系统盘(C盘),覆盖安装,其他盘未更改(mysql程序在D盘)。所以导致注册表和C盘一些内容可能有链接问题,在重新覆盖安装mysql时候出现了报错。
问题及处理
-
在覆盖安装城西的
Apply Configuration
->Starting the server
处报错。
-
查看
Log
,尝试寻找报错原因。
Attempting to start service MySQL80...
Failed to start service MySQL80.
-
此电脑
->管理
->服务和应用程序
->服务
->MySQL80
查看状态。显示服务未启动
-
考虑是C盘更新可能导致注册表
mysql
命令无效。配置Path
环境变量,步骤网上大把,此处略。 -
回到
服务
中重启,操作无果,报错1053。 -
检查属性。在登录子菜单讲选项改成
本地系统账户
。想起重装系统前后,系统密码不一样了。 -
尝试重启,成功。
-
查阅资料。。。。。。
-
尝试登录mysql,无果,报错1045。
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
-
打开mysql安装目录,有一个
my.ini
配置文件,在末尾添加一行skip-grant-tables
。 -
重启cmd和服务,输入
mysql -u root -p
,弹出密码直接回车。可以进入mysql
。 -
执行
use mysql;
,切换数据库。 -
执行
select authentication_string from user where user='root';
可以数据库的密码信息。 -
如果内容不为空,使用语句置为空:
update user set authentication_string='' where user='root';
-
问题解决,至此可以用无密码的方式登录了。后面想要修改密码可以参考:
-
在mysql 5.7.9以后废弃了password字段和password()函数
- 所以如果版本较低,直接使用语句
update user set authentication_string=PASSWORD("123456") where user='root';
,修改密码重登即可。 - 版本较高的使用
PASSWORD
函数会报错。修改方法可以参考链接:添加链接描述
- 所以如果版本较低,直接使用语句