项目场景:
最近在学PHP,学到mySQL的时候我掏出了我积满灰尘的PHPStudy,但是版本太低了,就去下了个新版:
问题描述:
然后就是mySQL服务无法启动,老倒霉蛋了,一点都不惊讶甚至觉得就该这样.
原因分析:
我一开始觉得是端口占用的问题,去看了一下发现新版PHPStudy的mySQL默认占用的是3306端口,一般不会和其他进程起冲突,查完也确实没有出现进程占用的情况;
解决方案:
- 启动注册表,找到mySQL文件,删除(是否起效不明);
- 进入C盘尝试寻找mySQL文件删除,确保旧的mySQL配置文件不会干扰新安装的mySQL,寻未果,遂放弃;
- 启动cmd,输入指令sc delete mysql, 指令被阻止
- 使用管理员身份启动cmd,再次执行sc delete mysql,执行删除mysql成功;
-
再次尝试链接mySQL, 依然无法启动,phpmyAdmin无法登入.
-
重启phpstudy,启动mysql服务,无果.
-
尝试卸载mysql5.7.26,卸载成功,但是再次下载时弹出报错导致无法下载;
-
怒不可遏;
-
尝试下载mysql8.0.12,下载成功.
-
尝试启动mySQL服务,启动失败.
-
进入cmd查找端口占用,发现3306端口遭到PID为7772的mysqld进程占用,注意此时netstat -ano的检测结果只有一项进程.
-
进入任务管理器,终止mysqld解除占用.
-
再次尝试启动mysql8.0.12服务,启动成功.
-
mysqld主动请求启动,允许启动,mysqld启动成功,mysql服务未终止.
-
再次检测端口占用发现3306被PID7692的mysqld进程占有,但是在执行netstat -ano时的结果是6项进程而不是启动成功之前检测的仅1项进程;
- 然后打开数据库工具SQL_Front发现报错不能用(打开就报错然后卡死),推测数据库版本过高,遂卸载8.0.12版本mySQL;
- 尝试下载5.7.26版本,依旧弹出报错无法下载,遂放弃;
- 下载5.0.96版本,下载完成,启动成功;
数据库工具可以正常使用;
两小时后发现phpmyAdmin不能使用,根据报错原因判断为当前mySQL版本过低导致,于是卸载5.0.96版本,切换为5.5.29版本,两个数据库工具均可正常使用;了: