mysql: error of rename

今天在数据库创建表的时候,提示报错:error of rename...

这个错误的简单描述为:新建数据库表,创建字段都没有问题,但是对刚创建完的数据表增加字段,修改字段都提示报错。

刚开始怀疑数据库表创建的有问题,于是删除重新创建,仍然报错,后台试着往建好的表中添加记录,发现也不能添加,最后发现数据表的引擎类型为innodb

在my.cnf/my.ini(Linux=my.cnf,Windows=my.ini)在未配置属性innodb_force_recovery时,它默认值是0(表示可执行所有),并且不存在于my.cnf/my.ini内。

innodb_force_recovery的参数值可以为0-6,当其大于0时,可以对表进行select、create、drop操作,但insert、update、delete是不允许的。并且重要的一点是,当设置为大于0后,以下条目是包含状态:

1. (SRV_FORCE_IGNORE_CORRUPT):忽略检查到的corrupt页。

2. (SRV_FORCE_NO_BACKGROUND):阻止主线程的运行,如主线程需要执行full purge操作,会导致crash。

3. (SRV_FORCE_NO_TRX_UNDO):不执行事务回滚操作。

4. (SRV_FORCE_NO_IBUF_MERGE):不执行插入缓冲的合并操作。

5. (SRV_FORCE_NO_UNDO_LOG_SCAN):不查看重做日志,InnoDB存储引擎会将未提交的事务视为已提交。

6. (SRV_FORCE_NO_LOG_REDO):不执行前滚的操作。

最终解决方案:修改my.cnf或者my.ini,将innodb_force_recovery的值设置为0。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容