同时装mysql57和80,57服务莫名消失的问题解决方案
起因本人在运行项目的时候有些项目新旧不一致导致我自己装了两个版本的mysql一个57一个80为了避免冲突mysql57给配置的是3306端口mysql80配置的是3307端口刚装一段时间没有任何影响但是后来一段时间后要演示内容的时候发现用不了了再一看服务管理中只有mysql80在运行但是mysql57不见了当我使用mysql -uroot -p然后输入密码弹出的报错是ERROR 2003 (HY000): Cant connect to MySQL server on localhost (10061)因为服务没启动甚至没安装上所以导致不能够启动和连接解决方案我这里是默认安装的Mysql所以路径是在C:\Program Files\MySQL\MySQL Server 5.7如果数据库有重要数据建议先备份该安装目录下的data文件方案1如果你安装目录下有ini文件按win标键输入cmd以管理员身份运行然后切换到mysql的安装目录下的bin目录如果你也是默认安装可以输入以下命令cd C:\Program Files\MySQL\MySQL Server 5.7\bin切换到对应目录后输入mysqld --install MySQL57 --defaults-fileC:\ProgramData\MySQL\MySQL Server 5.7\my.ini如果重新注册后data文件丢失记得在服务关闭的情况将备份的data替换进去然后解决了方案二如果在你安装目录下没有看到ini文件也不要太担心依旧是按照方案一以管理员身份运行cmd然后切换到cd C:\Program Files\MySQL\MySQL Server 5.7\bin目录输入mysqld --install MySQL57他会自动找到ini文件输入后应该会给你一个反馈告诉你安装成功此时输入net start mysql57来启动服务然后再试试登录如果还是不行出现了以下报错那么可以试试卸载服务后重新安装服务在当前报错的界面输入mysqld --remove MySQL57然后切换到 C:\Program Files\MySQL\MySQL Server 5.7\bin目录如果这个以管理身份运行的cmd一直没有关闭的话应该是默认在该路径的输入mysqld --initialize-insecure --console输入之后就会弹出很多条报错也就是弹出诸多的warning是正常现象这一步会增加ini文件此时再次输入mysqld --install MySQL57来安装服务此时应该也会弹出successful然后再启动服务输入net start mysql57此时应该启动成功但是你会发现用密码登录不上因为重新安装后密码默认是没有的此时相当于重装了一次mysql但是没有密码不输入密码直接登录进入mysql然后输入ALTER USER rootlocalhost IDENTIFIED BY 123456;来改密码为123456下次登录就可以了此时使用show databases命令会发现原本配置的数据库都丢了此时不用慌先停止服务’net stop mysql57’然后将刚刚的备份data文件夹替换到安装目录的data文件夹就大功告成然后再启动服务数据库就回来了如果看文章太快了没有备份不用惊慌及时停止服务然后在打开查看隐藏文件夹的选项的前提下在C盘找到programdata文件夹他是一个默认隐藏的文件夹进入后找到mysql文件夹夹应该是C:\ProgramData\MySQL\MySQL Server 5.7目录下把该目录下的data文件夹复制到安装目录下然后再启动服务就解决之前恢复数据库后数据丢失的问题