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编码了这个文件
解决办法:
把my.ini另存一下,改编码方式为ANSI
然后打开任务管理器,关闭mysqld.exe进程。
重新执行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. 参考资料
- ANSI是什么编码?
- mysql数据库error: Found option without preceding group in config file 问题解决