问题简介
1 数据库5.0无法打开innodb的表,只能打开mysam表
2 数据库5.0启动异常,无法正常启动
3 数据库5.0崩溃,无法正常备份,无法正常导入导出
报错提示
1 用mysql的时候出现1033-Incorrect information in file:“.数据库名表名.frm”
2 InnoDB: Error: unable to create temporary file; errno:
3 InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes (本次故障未出现)
InnoDB: than specified in the .cnf file 0 67108864 bytes!
查找问题
1 通过第一个报错观察,只有frm的表,无法查询,但是myisam表可以正常使用,推断出mysql引擎可能有问题
2 mysql没有正常启动,只用了mysql myisam引擎启动了,但是innodb引擎异常
3 查询mysql引擎 show engines;show variables like '%storage_engine%';相关 可以看到innodb状态为安装未启用disable
4 查询什么原因导致innodb异常
5 通过第二个报错,可以看出innodb表空间无法正常创建
6 查找innodb表空间位置,为C盘,C盘空间不是太多
7 修改配置文件innodb引擎临时表空间位置 tmpdir="D:mysqldata" 不要再C盘 重新启动mysql
8 修复后正常启动mysql,可以正常查询,但是无法正常提交相关,观察配置文件,innodb_force_recovery 需要关闭(这个参数是用来强制修复innodb损坏数据的,再没有备份的情况下不推荐使用)
解决问题
1 修改innodb临时表空间位置
2 查询innodb引擎是否正常
3 由于可能是磁盘空间满导致的问题,所以以后所有临时表空间不要放在C盘,实际上C盘空间并没有满,但是可能由于水位和释放问题,导致mysql临时表空间无法正常建立文件,有可能会导致日志和数据不一致等问题
4 修改配置文件临时表空间位置 重新启动
遇到新的问题
1 本次重启,发现32位windows系统 启动innodb buff 无法使用2G启动,暂时调小1G启动,解决释放本机内存,重启机器更换机器等等
2 InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 67108864 bytes!
原来是日志文件的大小与描述的不一致。
把log文件移走,再重启mysql,问题解决
注意innodb_fast_shutdown不能为2 可以在mysql中用 show variables like '%innodb_fast_shutdown%';来查看 默认为1
3 因为没有备份,所以导致需要更小心谨慎去操作,以后要注意异地备份