首先描述一下具体出现的问题现象:
XAMPP安装后启动mysql报错:Port 3306 in use by"XXXX",显示端口号已被占用。修改mysql->config与Apache->Config->php.ini内的端口号后依旧无法启动,后续改注册表编辑器的ImagePath也依旧启动不了mysql(登录后秒退出),后续一系列删除ibdata1、ib_logfile1、ib_logfile0的操作,还是启动不了 。
问题本质:
电脑里装了多个mysql!并且当初安装老mysql命名服务的时候默认为mysql,而xampp内置的mysql命名服务时也会默认为mysql,总结是 多个mysql+服务名重复 所导致的!
解决问题
1、首先解决端口重复的问题
此处我主要参考这位博主的解决方法:
Apache+mysql无法启动问题解决
在Apache->Config->php.ini与mysql->config这两个文件下将所有的端口号由3306改成3307【温馨提示 ctrl+f 找找更快哦】
2、删除服务
当你改完端口号运行后,发现了新的错误【这里借用一下上方博主的图,我自己忘截了】
你需要打开CMD,输入regedit,打开注册表编辑器,找到HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> services ->mysql.
【红色的标记无视它,图是我最后重装改完服务名截的,原先叫mysql】我参考的博主的做法是将mysql的imagepath从你之前默认启动mysql5.7改为你新下载的XAMPP内置mysql地址。这种做法在我这个情况下并不适用,主要三点:
1、改完后mysql确实能启动了,但我改了端口号3307,却显示还是3306,并且秒退出,报以下错误
2、改地址的话,以后默认启动的mysql都是XAMPP内置版,而我经常要用mysql5.7版的,一直反复改路径也不方便
3、由于1的错误,我一气之下删了XAMPP,导致我注册编辑器中的mysql服务消失了,因为改后的服务默认启动内置版mysql,要删一起删。没了服务,最终导致我mysql5.7也无法启动了
如果你上面和我踩了一样的坑,那么后面我的解决办法应该对你很有帮助:
1、直接删除mysql这个文件。是的,没有错,我阴差阳错反而为我开辟了新的道路,doge.
2、重新设置服务。还记的当初你怎么安装旧的mysql的么?
以下参考另一位博主:
mysql5.7安装教程
有一个步骤mysqld –install [服务名]这一步就是设置一个新服务,当初如果你仅仅写了mysqld -install没加服务名的话,默认服务名是mysql,与xmapp内置mysql的服务名重名了,导致一切血泪史。
所以,你需要打开CMD【用管理员方式】—>路径切换到旧的mysql的bin目录下—>输入mysqld –install [服务名]【服务名最好是mysql+版本号】
成功创建服务后,这时候再回到XAMPP启动mysql,终于成功启动了,端口名也正确变成3307
如果你还是没有成功的话,1、删除XAMPP,重新安装XAMPP 2、依旧修改mysql端口后再次直接启动。good luck
【最后的最后!本人小白,有错误的地方或者理解不当的地方,请多多指正!!!感谢】