您好,欢迎访问一九零五行业门户网

myslq 所有表共用一个表空间导致ibdata1文件太大数据库挂掉

在linux下面使用mysql,由于一开始建库的时候没有做好mysql问价的配置,结果导致所有的表使用一个表空间,导致ibdata1文件在不到半年时间里面变为30g直接导致mysql服务无法启动,应该在/etc/my.cnf文件的[mysqld]里面添加 innodb_file_per_table=1即mysql的
在linux下面使用mysql,由于一开始建库的时候没有做好mysql问价的配置,结果导致所有的表使用一个表空间,导致ibdata1文件在不到半年时间里面变为30g直接导致mysql服务无法启动,应该在/etc/my.cnf文件的[mysqld]里面添加 innodb_file_per_table=1即mysql的表使用单独的表空间。
innodb_file_per_table=1
innodb_file_per_table=0
值为1时表示使用单独的表空间,值为0是表示使用共享的表空间。
由于楼主在发现这个问题的时候mysql服务已经起不起来了,所以在配置文件里面添加了innodb_force_recovery=6命令。然后启动起来mysql服务,后来备份了数据库,然后从新建库,现在ibdata1文件只有10几m。
## innodb_force_recovery
## 可以设置为6个非零值:1~6。大的数字包含了前面所有小数字的影响,具体情况如下。
#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):不查看撤销日志(undo log),innodb存储引擎会将未提交的事务视为已提交。
#6(srv_force_no_log_redo):不执行前滚的操作
其它类似信息

推荐信息