mysql重启报--Iinitialization 目录已存在问题处理

记一次mysql重启报–Iinitialization 目录已存在问题处理

今天数据库偶然崩了之后,重启时居然报初始化目录已存在的问题,我又不是新安装数据库, 怎么会报这个呢,最开始找不到原因,没百度不出结果。在长达几个小时折腾后。记录如下方式

  1. 先确认/etc/my.conf中是否配置了日志目录,log-error=/var/log/mysqld.log,然后去看看里面的日志
  2. 如果里面出现了mysql.user表不存在等类似的错误。那么就是和我现在的情况一样。
    解决办法:
    修改my.conf中的配置文件中的datadir,将他换一个新的目录,可以这样:比如之前的是
    datadir=/var/lib/mysql
    那么可以改为
    datadir=/var/lib/mysql2
    然后启动mysql,他会在mysqsl2目录里面启动,
    这时,将mysql2里面的mysql目录整体复制到/var/lib/mysql中,注意,如果你是root账号登录,需要将你复制后的mysql目录的所属用户改为mysql。命令为
    chown mysql:mysql /var/lib/mysql/mysql/*
    chown mysql:mysql /var/lib/mysql/mysql
    两个都要改,不然会报权限问题。
    然后再启动。就可以了。
    再记录一个其他问题:
    如果在创建表或其他情况下遇到:tablespace is missing for table from school.user
    就需要重新建个库eg:school2,在新库里面创建同名表eg:user,然后去datadir指定的目录下找到
    school2目录,进去找到user.frm和user.ibd。将这两个替换原shcool库下面的user.frm和user.ibd,
    ** 然后也要修改文件所属用户为mysql**
    然后执行ALTER TABLE tb_user IMPORT TABLESPACE; SHOW WARNINGS;
    例如:
    /var/lib/mysql/school/user.frm和user.ibd是原来的有问题的。
    /var/lib/mysql/school2/user.frm和user.ibd是新的,
    就用新的替换旧的即可。
    再次注意也要修改文件所属用户为mysql
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值