mysql在计算机管理的服务里启动不了

前言

本篇记录一次mysql启动不了的经历,如果嫌篇幅过程,可直接跳到总结找到你所需要的答案。

最近我的服务器感觉有点卡,连ie都开不到(不知道什么原因),我打开资源管理器,发现mysql的进程占用cpu很高,网站打不开,于是我备份好数据之后,试着重启mysql(服务器用的是wamp),悲剧来了,mysql启动不了?!
1、我进入命令行,输入mysql,出现的是
在这里插入图片描述
2、进入windows服务那里查看,结果发现:
mysql在计算机管理的服务里启动不了_第1张图片
黑人问号??

3、我只能祈求重启能自动修复问题了。重启之后连桌面都显示不到(显示资源管理器无响应之类的问题),什么辣鸡服务器(好吧,比较便宜的服务器),于是提交工单,等待服务器商那边修复。修复后建议我重装服务器,因为他们也看不到桌面。。。一开始我是同意的,但是回过头,重新连接服务器,居然可以看到桌面了。

4、重新去到计算机的服务那里,右键wampmysql64终于可以看到启动按钮了,喜出望外,于是点击启动,等待来的是个错误。
本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止?

5、我google了一波,再浏览了很多个方案之后,发现了知乎的同学也遇到过这种问题
https://www.zhihu.com/question/38891136

6、进入到mysql/bin目录使用初始化命令 mysqld --initialize,然后出现错误。
mysql在计算机管理的服务里启动不了_第2张图片
大概意思是mysql目录下的data目录有文件,不能初始化,于是我将整个data文件夹的数据复制出来。这是data文件夹是空的。
重新输入mysqld --initialize,发现data文件夹中自增了一些文件,然后我将之前复制出来的数据库黏贴到data文件夹里。

7、重新到计算机管理启动mysql服务,之后必须重新设置一下密码,因为初始化数据库连密码都更改了。

8、修改密码。我们通过跳过权限的方式来重置密码。
step1:停止mysql服务。
step2:在cmd命令行窗口cd进入mysql的bin目录。
step3:输入命令:mysqld --skip-grant-tables,注意这时命令行窗口就不会再有动作了。
step4:重新打开一个cmd命令行窗口,输入mysql,即可进入修改密码。

use mysql;
show tables;
update user set password=PASSWORD('新密码') where User='root'; 
flush privileges;
quit

step5:最后的flush privileges是刷新权限表。
step6:关闭命令行。

9、重新打开mysql服务,这时你会发现启动不了。还是出现本地计算机上的mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止 的错误,这里因为我们启动了mysqld进程还没有结束。在任务管理器结束mysqld进程。然后再打开mysql服务。

10、如果你重置了密码,密码是没有错的,然而你可能会发现你的网站还是连不上数据库。

11、我通过wamp那个按钮进入mysql的命令行,它会叫你输入密码。然后会出现一个warning(error)忘记了,
mysql error You must reset your password using ALTER USER statement before executing this statement.
这里告诉我们需要重置密码,我们按一下步骤进行。
step 1: SET PASSWORD = PASSWORD(‘your new password’);
step 2: ALTER USER ‘root’@‘localhost’ PASSWORD EXPIRE NEVER;
step 3: flush privileges;

12、重启mysql服务器,完美解决。

总结

这次遇到的问题大概是由于我重启mysql时,mysql正在进行着某些操作,而我强制终止mysql进程,导致写入某些文件时出错。
处理方法:清空data文件夹(将文件夹里的数据库复制出来),然后使用初始化命令 mysql --initialize,然后将复制出来的数据库粘贴回data文件夹中,更改数据库密码之后基本可以了。
出现本地计算机上的mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止 的错误,可能原因是mysql是使用mysqld来启动的,到任务管理器结束mysqld进程即可。值得注意的是mysqld与mysql启动的mysql服务是不一样的,这里不深究。

你可能感兴趣的:(mysql)