MySQL服务启动:某些服务在未由其他服务或程序使用时将自动停止
这几天因为工作需求,需要把MySQL请出来,所以将尘封已久的MySQL进行启动。可是事与愿违,兴许是许久没有访问MySQL了,MySQL生气的不理我,并向外抛出一阵阵报错。
1、其中一个是:Windows无法启动MySQL57服务(位于本地计算机上)错误1067:进程意外终止,报错如下图所示。
2、紧跟着还有一个报错:本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止,报错如下图所示。
3、之后即便我垂死挣扎,在命令行窗口中不断的重启MySQL服务,但是仍然没有戳到痛点,尝试的步骤有下图为证。
4、随后想当然的硬上进入MySQL,根本就不可能,只能撞南墙,败兴而归。
5、后来也想过直接通过点击"我的电脑>管理>服务>MySQL",收到启动MySQL,但是丝毫没有改观。
6、经过一番尝试之后,还是行不通。无奈之下,不断的寻找blog,终于找到了一个可行的方法,但是代价也是很大的,基本上是给MySQL洗心革面了。如果小伙伴们的原始MySQL中有重要的数据的话,不建议使用这种方法;如果觉得已经在数据库中的数据无关紧要或者不小心遇到了这个问题,那就可以大胆的使用这种方法,只不过是重头再来,具体的解决步骤如下。
首先务必使用管理员权限进入到命令行、务必使用管理员权限进入到命令行、务必使用管理员权限进入到命令行,重要的事情说三遍,不然的话就会出现"发生系统错误 5。 拒绝访问。"这样的错误,如下图所示。
7、之后进入到MySQL安装目录下,找到bin目录,这个过程是必须的。这个过程很简单,一路上使用cd命令和dir查看目录文件的命令相互结合,直到进入到bin目录下为止。一般来说,MySQL的安装默认路径是:C:\Program Files\MySQL\MySQL Server 5.7\bin,大家可以做下参考。
8、之后进行初始化data目录。如果在与bin目录同级的文件夹下没有data文件夹的话,则创建一个data空目录,名字务必为data。如果有该目录的话,记得要清空data目录下的所有初始文件,就酱紫。
9、之后到bin目录下执行命令(管理员身份打开命令行窗口):mysqld -initialize,如下图所示。初始化大概需要20秒左右的时间,静观其变即可。
之后就可以看到MySQL服务顺利启动。
而且在状态栏的MySQL Notifier中也会弹出提示,如下图所示,MySQL的状态变为从停止变为启动。
10、此时通过命令行窗口再次登录数据库(命令为:mysql -u root -p)就可以顺利进入了,但是输入你之前的历史遗留的密码并不好使了,而且会报错,报错为:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES),如下图所示。
这是因为MySQL初始化之后,生成了一个初始密码,放在了data文件夹下以.err为后缀的文件夹下,如下图所示。
11、此时,通过电脑自带的记事本打开文件,是不太行得通的,通过sublime text就可以顺利打开了,以"password"为搜索项,很快就定位到初始密码了,如下图所示。
这个密码是随机生成的,而且相对复杂,可以直接复杂粘贴到命令行窗口。
12、将初始化密码进行复制,粘贴到MySQL登录的密码中去,如下图所示。
此时可以看到,顺利进入到了MySQL。
13、但是直接输入MySQL的简单命令之后,发现并不能操作数据库,会提示报错:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.,如下图所示。
14、这个报错的意思是告诉你重设密码,此时只需要输入命令重新设置密码即可。至于MySQL重设密码的方法网上有很多,在这里不展开讲述了,小编用的语法是:alter user 'root'@'localhost' identified by '123456';,其中123456是重设的密码,大家可以自定义的,顺利设置完成之后记得刷新权限:flush privileges;,尔后你就可以正常操作数据库了。该步骤的具体操作过程如下图所示。
至此,问题完美的解决了,希望对日后不慎踩入此坑的小伙伴们有帮助~~