先请美女镇楼!
话说两个月前这个问题就被搞定了,但今天再次遇到的时候,竟然又花了2个小时才搞定,我决定写个日志记录一下了。
客户服务器上的mysql用的是较早的版本,只有一个压缩包,非安装包,解压后这样(没有data文件夹)
有时候我们需要对MySql重新部署,就会不小心踩到坑,第一次遇到这问题,是同事在客户现场始终不能完成部署,说无法启动mysql服务,今天是重新部署,也就是给mysql换了个地址,从桌面换到C盘里专属的文件夹,移除服务重新安装,然后就挂了。
安装服务:mysqld -install mysql --defaults-file=安装路径 比如:C:\MySQL\my.ini
启动服务:Net start mysql
看上去十分简单的操作,却直接掉坑里了,其实这里少了一个关键的步骤,无外乎安装指令前后执行,但一定要在启动之前完成:
1:在mysql目录,新建一个data文件夹,与bin目录同级,之后执行指令重新配置:
mysqld --initialize-insecure --user=mysql
执行过程大概有个十几秒的样子,执行结束没有提示,执行完之后data文件夹不再是空,这里我已经添加了admin帐号,所以跟初始的样子稍有区别,出来了个admin-PC.ERR文件,里边记录了一些帐号密码信息和mysql的操作日志,重新配置完成的root帐号是没有密码的,在err文件里可以看到相关字眼:
root@localhost is created with an empty password
所以后续完成安装并启动成功后,登录的时候键入mysql -uroot -p,提示enter password,直接回车就登录了。
2:之后再执行启动mysql服务命令,应该就可以了。
还有一种情况,就是同事第一次遇到的情况,我猜测他当时是移除了服务,然后重新安装服务,直接启动,这种情况下往往会遇到启动失败的情况,去服务列表里启动会提示“MySQL服务正在启动或停止中 请稍候再试”,此时继续用指令remove,然后install,最终可能会变成,服务显示“禁用”,并且无法启动,也无法删除,执行过remove指令,重启机器才会从服务列表里消失。
以上迷惑可以这样来解决:
此时我们需要使用管理员身份运行命令行工具,输入命令 tasklist | findstr "mysql"
GO! 不出意外的话,可以看到mysqld的相关进程依然在运行,
之后输入命令 taskkill /f /t /im mysqld.exe
GO!然后去刷新服务列表页,mysql服务消失了,下面我们需要重新部署,回到本文上面的段落,再来一次!
最后感谢二位博主的博客给予灵感: