错误
之前安装了MYSQL后,直接使用NavicatPremium工具操作数据库,一开始正常启动。后来为了和同学协同开发,就统一使用安装在云服务上的数据库(其实这个问题有更好的解决方案,不过这属于小系统,小练手,就没使用太多工具,好吧,我们偷懒了)。
过后,课程需要,我再次启动本地MYSQL服务,就出现了如下情况:
解决过程
百度一搜索,解决方案五花百门。修改my.ini文件,删除ib_logfile0、ib_logfile1、...等文件,甚至重装。有些遇到同样问题的人还帮大家测试过了网上种种解决方案,然后选择出符合他自己的解决方案。一开始我也测试过修改my.ini和删除文件,但是都没把问题解决掉。好在我不是很着急着使用数据库,否则就要测试“重装”了。
以上解决方法都有一个共同点,就是“治标”。即这次解决你问题的方案,下次遇上“同样”的问题不一定有用。这问题其实并不“同样”,但是在我们这些不熟悉MYSQL运行原理和底层原理的人来说,就是同样的问题了,都是1067启动终止嘛。但是从网上那么多的解决方案可以看出,1067启动错误的起因绝不止一种。不懂得人只能“盲扫”了,一个一个试呗。
感谢开源中国的一个好几年前的问题解答贴,解决了我这个问题。问答帖地址:(),非常感谢。
没错,查看系统日志就可以了。
可以看到,系统显示无法识别的变量“default-character-set=utf-8”,直接百度,将配置文件my.ini里[mysqld]下的“default-character-set=utf-8”改为“character-set-server=utf-8”,简单粗暴解决问题。
再深入一点(再百度一下),原来起因是我在安装了数据库后,重新配置了数据库的编码,在配置文件里添加了default-character-set=utf-8,但是由于MYSQL版本限制,我的MYSQL版本(5.5)要使用“character-set-server”进行编码配置,而不能使用“default-character-set”。
总结
解决问题思路:查看日志,有针对性解决问题。(和开发一个道理)