今天无意间发现MySQL服务停止了,打开命令提示行想重启一下,结果遇到如下情况:
试了一下mysqld --console
,结果什么都没打印出来,用sc delete mysql
删除之后重新安装和初始化也启动不了
查询了一下,网上主要有三种方法(但我使用之后状况都不太一样,没有解决掉,发出来仅供参考):
1.初始化设置:
手动删除data目录,然后
mysql --initialize
net start mysql
2.检查3306端口是否被占用,如果被占用,停止进程即可
3.修改my.ini配置文件,有很多大佬发出来,我的很简单:
[mysqld]
basedir = C:\Develop\mysql
datadir = C:\Develop\mysql\data
port = 3306
sql_mode = "NO_AUTO_CREATE_USER,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
default-time-zone='+8:00'
#skip-grant-tables
在尝试了三个方法都失败了之后,想不到办法了,也没有任何报错,后来仔细想了一下,唯一有问题的点可能就是my.ini了,然后我把sql_mode屏蔽了再试了一下,成功了
那问题应该就是在sql_mode里面了,我又解开注释挨着看了一下参数问题,找到了问题所在,如果是MySQL8.0以上的话,在sql_mode里面的参数是取消了NO_AUTO_CREATE_USER这个参数的,顺便说一下,这些参数大家不要盲目去复制,可以根据自己需要来设置。