问题:MySQL56服务启动时候,报1067错误。
这个错误的比较常见了,网上的解决方案也是五花八门,本文记录本次解决该问题全过程。
1、以管理员方式允许CMD,进入到MySQL安装路径下的Bin目录。
2、删除MySQL56服务。
sc delete MySQL56
3、尝试使用命令:mysqld --install MySQL56 安装MySQL56服务,但失败了。
4、在机器上搜索,居然在安装目录下发现了安装包缓存,在C:ProgramDataMySQLMySQL InstallerProduct Cache目录下。
5、尝试使用mysql-5.6.12-winx64.msi修复安装,很顺利的完成了。
6、再次进行上述步骤3,安装MySQL服务。
mysqld --install MySQL56
7、在服务管理器中启动MySQL56服务,成功。
8、测试登录,大问题来了,root用户使用以前的密码登录不进去了,这是要重置root密码的节奏。在忘记 root 密码的情况下,可以进入 mysql 的安全模式,重置 root 密码。
9、停止 MySQL 服务。
net stop mysql56
10、切换到bin目录,使用如下命令,跳过权限检查启动mysql。
mysqld --skip-grant-tables
在这一步,如果配置了my.ini文件,则需要将其引入,则使用如下命令。在my.ini文件中指定了数据的存放路径的话,如果不引入配置文件,则会提示 No such file or directory 错误。
mysqld --defaults-file="C:/ProgramData/MySQL/MySQL Server 5.6/my.ini" --skip-grant-tables
11、连接mysql,打开另一个命令提示符窗口(别关闭上一步安全模式窗口),同样切换到 mysql的bin 目录,输入 mysql 跳过权限验证连接数据库。
mysql
12、重置密码,执行如下命令,重置 root 用户的密码(5.6及之前版本为password字段,5.7 及以后为authentication_string字段)。
update mysql.user set password="123456" where user="root"
13、查询验证下。
select user,password from mysql.user;
14、执行 flush privileges; 命令刷新权限表,密码已经重置完成.
flush privileges;
15、输入 quit 退出。
quit