一、问题描述
在计算机管理-服务中,找到对应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是用户名,''中的是你要设置的密码,回车即可修改成功!!!