MySQL服务无法启动的问题以及解决
作者:Pre-Star
MySQL服务无法启动问题
解决方法一
1.找到你的my.ini文件,用notepad++打开,在右下角看保存编码格式
是不是ANSI
,如果不是,则在工具栏找到编码,改成ANSI
,保存。
2.打开任务管理器,看是否有mysqld
这个进程,如果之前启动失败的话,这里的状态可能会是“启动”(表示它在启动过程中,一般会卡在这里,启动不了),并不是“已启动”,所以我们要先结束
这个进程,再去重新启动
mysql服务。
启动mysql服务的命令: net start mysql
my.ini文件存放位置:C:\ProgramData\MySQL\MySQL Server 5.7,如果找不到ProgramData文件夹,那么打开文件资源管理器–>查看–>勾选展示隐藏的项目。
解决方法二
1.cmd进入mysql的bin目录下,执行mysqld --console
,查看日志,找到错误原因,如果日志中存在
[ERROR]Can't start server: Bind on TCP/IP port: No such file or directory
[ERROR] Do you already have another mysqld serverrunning on port: 3306 ?
[ERROR] Aborting
2.那就是3306的端口被其他服务占用了,停掉占用的进程就行了。
3.cmd执行netstat -ano | findstr "3306"
,可以查找到端口号中包含"3306"的端口占用情况,如下图所示,从而得知占用3306端口的pid是4300。
4.我们可以直接通过PID杀死进程,但保险起见还是看一下这个进程是否有用,cmd执行tasklist | findstr "4300"
查看占用该端口的进程。(显示mysqld.exe是因为我已经成功启动了,此篇博文是记录解决过程的)
5.cmd执行taskkill /f /t /im mysqld.exe
,杀死占用端口的进程;
- 或执行:
taskkill -PID 4300 -F
,使用PID杀死进程,其中 /f 表示强制关闭该进程; - 或打开任务管理器,找到进程对应的服务名称,结束任务。(因为我已经成功启动,所以我的服务名称也是mysqld.exe,具体的服务名称看上图最左边的内容)
6.cmd执行net start mysql
,重新启动mysql服务。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。