mysql服务启动后停止 相关问题

今天正常打开项目启起来之后浏览器报了500错误,检查后发现是mysql数据库连接的问题,从来没遇到这样的错误,于是打开了navicat发现mysql无法启动了...尝试在计算机-管理-服务中手动启动mysql服务,结果报了如下的错误

很棘手,从来没遇到过,查找资料后大家给出的解决方案大致为

清空该文件夹后初始化mysql,不过data下面包含了用户本地的数据库,建议大家备份后操作,当时没注意到,还好有sql文件,恢复也搞了半天,清空后用管理员身份进入cmd

接下来在cmd中cd bin文件的路径 进入后输入mysqld --initialize

正常来说这里等一会后直接net start mysql后就已经解决,不过初始化输入后又遇到了问题,报了TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details)的错误,又各种查阅资料后大概了解到timestamp这个东西从 5.6开始,默认行为已经是 deprecated 了,并且

在MySQL 5.6.6之前,TIMESTAMP的默认行为:

•TIMESTAMP列如果没有明确声明NULL属性,默认为NOT NULL。(而其他数据类型,如果没有显示声明为NOT NULL,则允许NULL值。)设置TIMESTAMP的列值为NULL,会自动存储为当前timestamp。
•表中的第一个TIMESTAMP列,如果没有声明NULL属性、DEFAULT或者 ON UPDATE,会自动分配 DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP 属性。
•表中第二个TIMESTAMP列,如果没有声明为NULL或者DEFAULT子句,默认自动分配'0000-00-00 00:00:00′。插入行时没有指明改列的值,该列默认分配'0000-00-00 00:00:00′,且没有警告。(查阅自脚本之家)

此时我们需要在mysql的配置文件my.ini中在[mysqld]行下添加
explicit_defaults_for_timestamp=true

explicit_defaults_for_timestamp这个属性 关闭了 timestamp 类型字段锁拥有的一些会让人感到奇怪的默认行为,加入了该参数之后,如果还需要为 timestamp类型的字段指定默认行为,那么就需要显示的在创建表时显示的指定。

还有一个小的知识点在于如何找到这个叫my.ini的配置文件:

需要我们打开查看隐藏的项目

 后进入会发现多了一个叫programData的隐藏文件夹

后面跟着如图的路径即可找到

 整了我好久,终于最终成功启动了mysql...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值