【错误】Win10中MySQL5.7 net start mysql服务正在启动或停止中,请稍候片刻后再试一次)

1. 运行环境

2. 问题描述

3. 解决方案

4. ANSI编码

5. 总结

6. 参考资料

1. 运行环境

Win10 + MySQL5.7.25

2. 问题描述

输入一次net start mysql,在进程里面mysqld.exe已经启动了,但是无法进入MySQL数据库,报错: mysql: [ERROR] Fatal error in defaults handling. Program aborted! D:\DatabaseSoftware\MySQL5.7.25\bin>net start mysql

D:\DatabaseSoftware\MySQL5.7.25\bin>net start mysql
MySQL 服务正在启动 ...................
MySQL 服务无法启动。
请键入 NET HELPMSG 3523 以获得更多的帮助。
D:\DatabaseSoftware\MySQL5.7.25\bin>mysql -u root -p
mysql: [ERROR] Found option without preceding group in config file D:\DatabaseSoftware\MySQL5.7.25\my.ini at line 1!
mysql: [ERROR] Fatal error in defaults handling. Program aborted!
D:\DatabaseSoftware\MySQL5.7.25\bin>net start mysql
服务正在启动或停止中,请稍候片刻后再试一次。

3. 解决方案

网上查了很多,发现都跟自己的不一样,最后发现这个坑是因为编码原因导致的。因为在这个过程中自己用记事本打开过配置文件my.ini,不小心把编码变为了utf-8,所以解决方案就是把my.ini编码重新改回ANSI编码就解决了。

截图操作如下:

错误原因:utf-8编码了这个文件

重启MySQL卡在停止服务 mysql57启动后停止_解决方案

解决办法:

把my.ini另存一下,改编码方式为ANSI

重启MySQL卡在停止服务 mysql57启动后停止_编码问题_02

然后打开任务管理器,关闭mysqld.exe进程。

重启MySQL卡在停止服务 mysql57启动后停止_编码问题_03

重新执行net start mysql命令,成功启动!

D:\DatabaseSoftware\MySQL5.7.25\bin>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
D:\DatabaseSoftware\MySQL5.7.25\bin>mysql -u root -p

4. ANSI编码

至于为什么会存在这个ANSI编码,总体说ANSI并不是一种编码方式,它由你的操作系统环境决定,像我们中国大陆,它就是GBK编码。在美国它就是ASCII编码。具体的大家可以参考这篇文章ANSI是什么编码?

5. 总结

总之编码问题在很多地方都会出现bug,以后大家遇到问题,要尝试一下,是不是编码的坑。 当然,编码问题可能跟你最开始装MySQL时配置的编码方式有关,跟最开始保持一致就好了。最差的办法就是卸载重装MySQL。

6. 参考资料

  1. ANSI是什么编码?
  2. mysql数据库error: Found option without preceding group in config file 问题解决