【问题解决】mysql数据库启动时报服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止

一、问题描述

在计算机管理-服务中,找到对应mysql服务右击启动,出现以下情况


二、解决过程

Mysql版本:5.7

1、备份mysql的data文件

找到你安装mysql的目录下的data目录,我的目录路径是:C:\Program Files\MySQL\MySQL Server 5.7\data,将其中的数据库表名及idata1文件进行备份,如下:

  • 如blog、mybatis文件:包含了表结构
  • ibdata1: innodb表空间,里面存放的应该是你的数据库表数据内容

2、删除服务

这一步是将原来的服务删除掉,首先通过下面服务来找到你之前自己定义的mysql服务名:

说明:上图只是演示在哪里找到,我之前的服务名是mysql57,下面也会按照这个服务名进行操作!!!

在你的mysql安装目录的bin目录路径下输入命令(管理员身份启动的cmd):mysqld --remove mysql57

remove后面跟的是你的服务名!!!出现下面这行文字说明成功删除了。


3、清空data目录,并初始化

找到mysql安装目录,将data目录清空;若是没有data文件夹的自己创建一个data文件夹

还是在bin目录下的cmd中输入命令:mysqld --initialize-insecure --user=mysql进行初始化

下面报一个配置的错误,不过不影响,我们继续下面步骤。


4、重新注册mysql服务

在bin路径的cmd中输入命令:mysqld --install mysql,出现下面提示表示注册服务成功

说明:install后面mysql是我注册的服务名,你也可以设置别的名称。


5、启动服务

还是在bin目录中输入命令:net start mysql,start后面的mysql是你刚刚注册服务的名称

此时我们就启动成功了!!!这里要说的是密码此时为空,并且你原来的数据库及表都已经清空了,所以说之前需要对数据库与表进行备份,看下面其他说明。


其他说明

备份说明

我们将之前的备份的文件目录重新复制到data目录里,除了下面几个文件目录还有一个idata1文件,很重要!!!

注意:复制idata1文件到data目录中,会出现data文件正在被使用中,我们可以在cmd命令中输入:net stop mysql(mysql是服务名)或者到计算机管理-服务中手动关闭即可,再重新复制就可以了。

密码设置

我们在清空data目录并重新注册mysql服务后,密码也重置为空了,所以我们先使用命令进入mysql中:mysql -u root -p,如下:

使用如下命令来设置登录密码:set password for root@localhost = password('123456');

其中root是用户名,''中的是你要设置的密码,回车即可修改成功!!!


参考文章

【1】MySQL服务启动时显示本地计算机上的MySQL服务启动后停止。某些服务在。。。

【2】本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止


我是长路,感谢你的阅读,如有问题请指出,若有错误会进行修正。
欢迎关注我的公众号:长路Java,其中会包含软件安装等其他一些资料,包含一些视频教程以及学习路径分享。
也可以加群:891507813 我们可以一起探讨学习
注明:转载可,需要附带上文章链接

猜你喜欢

转载自blog.csdn.net/cl939974883/article/details/112604223