写在试验之前:今天帮学生调试了一个故障,mysql服务安装成功了,但是不能启动。观察服务的属性,发现机器上有两份mysql,并且服务是由另一份mysql提供的。在当前文件夹bin下创建的服务,怎么会使用别人的呢?分析后的原因是另一份mysql的路径被path了,而当前一份的没有被path。问题来了,难道windows的path路径优先于当前文件夹吗? 下面设计了一个试验,验证了猜测是对的。
第1步:在同一机器上,安装第1份mysql
第2步:在同一机器上,安装第2份mysql
第3步:第2份mysql的路径被path,而第1份的没有
第4步:在第1份mysql的bin文件夹下创建mysql服务
第5步:查看创建的服务
发现服务是由第2份mysql提供的,说明Windows的Path路径优先于当前文件夹。
第6步:删除第2份mysql的path路径,重启生效
第7步:删除刚安装的服务,在第1份mysql中重新安装服务
第8步:再次查看服务属性,发现服务改由第1份mysql提供了。
结论:试验发现,windows的path路径优先于当前文件夹。如果安装了一份软件,发现不能顺利启动,建议查看是否存在另一个版本,并且被path了。以前作者也遇到过类似问题,就是JDK的安装,也是被path版本抢先启动,导致了异常。文章虽小,真实可靠,如果有帮助,请给予鼓励吧。