每当我启动Mysql数据库时,我都会在error_log中看到这一点:
131015 12:07:06 [注意]插件'FEDERATED'被禁用。 131015 12:07:06 InnoDB:InnoDB内存堆被禁用131015 12:07:06 InnoDB: 互斥锁和rw_locks使用Windows互锁功能131015 12:07:06 InnoDB:压缩表使用zlib 1.2.3 131015 12:07:06 InnoDB: 初始化缓冲池,大小= 16.0M 131015 12:07:06 InnoDB: 完成初始化缓冲池131015 12:07:06 InnoDB: 最高支持的文件格式是Barracuda。 InnoDB:日志序列 ibdata文件中的数字与InnoDB不匹配:日志序列号 在ib_logfiles中! 131015 12:07:06 InnoDB:数据库没有关闭 正常下来! InnoDB:开始崩溃恢复。 InnoDB:阅读 来自.ibd文件的表空间信息... InnoDB:恢复 双重写入InnoDB中可能的半写数据页: 缓冲... 131015 12:07:07 InnoDB:等待后台线程 开始131015 12:07:08 InnoDB:5.5.32开始;日志序列号 1595695 131015 12:07:08 [注意]服务器主机名(bind-address): '0.0.0.0'; port:3306 131015 12:07:08 [注意] - '0.0.0.0'解析为 '0.0.0.0'; 131015 12:07:08 [注意]在IP上创建的服务器套接字: '0.0.0.0'。
我已经尝试过mysqlcheck -u root -p --repair -A来修复数据库。这会报告所有表格都没问题。
我也尝试过将innodb_force_recovery设置为4
我尝试过SET GLOBAL innodb_fast_shutdown = 1;并关闭数据库。
这些都不会使错误消失。
如何修复数据库中的InnoDB表?
答案 0 :(得分:0)
我会调查每次重启时MySQL崩溃的原因。据我所知/etc/init.d/mysql停止可能需要很长时间,所以如果重新启动服务器操作系统可能只是杀死mysqld。在这种情况下,您应该在重新启动整个服务器之前手动停止MySQL。
答案 1 :(得分:0)
我遇到了同样的问题。
在我的情况下,我通过XAMPP在Windows上运行MySQL并使用XAMPP控件来启动/停止服务器。
看来XAMPP关机控制正在杀死MySQL服务器,而不是请求关闭。
innodb_fast_shutdown=0
以配置mysqld以执行完整摊牌mysqladmin --user=[user] --password=[password] shutdown
替换[user]
和[password]
的.bat文件如果要关闭MySQL服务器,只需运行.bat文件即可。 XAMPP控制面板检测到关机,因此您可以使用XAMPP控件重新启动。
如果你现在看看你的日志,你会发现错误消失了
或者更好的是,只需将mysql安装为Windows服务。
innodb_fast_shutdown
http://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_fast_shutdown mysqladmin shutdown
- http://dev.mysql.com/doc/refman/5.7/en/server-shutdown.html 答案 2 :(得分:0)
我通过删除"Xampp\mysql\data"
中的某些文件来解决我的问题:
**确保通过以下方式备份数据库:
[mysqld]
innodb_force_recovery = 2
(此命令将帮助您以只读模式启动Mysql。)