windows server服务器自动断电之后,mysql5.7无法启动

服务器自动断电之后,mysql5.7无法启动

mysql无法启动的原因:大概率导致mysql数据库data目录下的ibdata1,ib_logfile1,ib_logfile0文件损坏

ib_logfile1,ib_logfile0损坏解决方法

  1. 备份数据库data文件夹,删除data文件夹中的所有数据

  2. mysql/bin目录执行

     mysqld --initialize
    
  3. 尝试启动服务

    net start mysql;
    
  4. 若服务可以正常开启,则关闭服务,将备份的data文件夹替换当前当前的data文件夹(ib_logfile0,ib_logfile1两个文件不要复制进去)

  5. 重启服务即可

ibdata1损坏解决方法

弊端: 若数据数据量太大,导出sql需要花费大量的时间,我项目的数据量不大,sql文件只有三百多兆。

  1. 修改my.cnf文件,在my.cnf中的[mysqld]中添加:

    -- 当设置innodb_force_recovery大于0后,可以对标进行select、create、drop操作,但insert、update或者delete这类操作是不允许的。
    innodb_force_recovery = 6 
    -- 能让碎片回收得更及时而且不影响其他线程的操作;
    innodb_purge_threads = 1
    
  2. 启动服务将使用到的数据库导出sql文件

  3. 重新创建mysql

    1. 在mysql/bin目录执行

      mysqld --initialize
      
    2. 启动mysql服务

      net start mysql;
      
    3. 使用初始密码登录mysql

      mysql -uroot -p
      
    4. 登录mysql后重新设置密码

      set password=password('ykocs12#$');
      
    5. 修改密码

      use mysql;
      UPDATE user SET authentication_string  = PASSWORD('newpass') WHERE user = 'root';
      
    6. 修改远程访问权限

      update user set host = '%' where user = 'root'; (使mysql root用户可以连接上任意的ip地址)
      
    7. 刷新权限

      FLUSH PRIVILEGES;
      
  4. 重新新建库运行sql备份文件即可

  5. 执行备份文件出错的可能原因

    导出的sql文件中 DEFAULT NULL 需要替换为 NULL DEFAULT NULL

以上均为自己配置之后做得记录,若有错误还请指正

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值