[ERROR] InnoDB: The innodb_system data file ‘ibdata1‘ must be writable 解决过程

近期遇到的奇葩的mysql问题,错误信息如下

[ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable。

场景回溯过程,机器仅重启了电脑,之前的好用的mysql服务无法启动,出现上述问题。

解决分析过程:

  1. 一看到上述错误,就是感觉是权限问题,立马查询众多博客,添加了ibdata1对应的权限,可惜重启服务还是一样出现问题;
  2. 删除ib_logfile0,ib_logfile1文件重启服务,结果还是不行;

最后解决过程:

Mysql.cnf配置文件

[mysqld]
lower_case_table_names = 1
max_connections = 2000
character-set-server=utf8
max_allowed_packet=1024M
datadir="/opt/mysql"
socket="/var/lib/mysql/mysql.sock"
symbolic-links=0
log-error="/var/log/mysqld.log"

      查看其它的日志,在查看过程发现如下信心,感觉可疑,进而对应系统进行学习

[Warning] Changed limits: max_open_files: 5000 (requested 10000)

[root@localhost ~]# ulimit -n
1024

 根据上述数据,大体发现是系统openfile文件问题,系统默认配置小于mysql配置需要的max_connections=2000参数

编辑/etc/security/limits.conf添加如下配置信息,并重启后,启动MySQL正常。

*   soft    nofile 65535
*   hard    nofile 65535

最后确定解决办法:

 添加文件的对象句柄数来解决[ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable问题

注:不要仅仅看一处,可能在其它的小细节问题上影响整个服务的运行,在此做个记录并希望能帮到和我一样出现该问题的朋友。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: nnodb_system' 是 InnoDB 存储引擎的系统数据文件,用于存储 InnoDB 存储引擎的元数据信息,包括表空间、表结构、索引、事务信息等。这个文件是 InnoDB 存储引擎必需的,如果该文件损坏或丢失,可能会导致数据库无法启动或数据丢失。因此,建议定期备份该文件以保证数据库的稳定性和可靠性。 ### 回答2: InnoDB是MySQL数据库中一种流行的存储引擎,它提供了强大的事务支持功能。在InnoDB中,每个表都有自己的数据文件,这些数据文件以.ibd为扩展名。除了每个表的数据文件之外,InnoDB还有一个系统数据文件,这个文件名为ibdata1。 ibdata1文件保存着InnoDB系统表的元数据信息,以及InnoDB存储引擎中的一些共享数据结构和系统表空间。通过这个文件,InnoDB可以管理多个表的数据和元数据信息,因此它是InnoDB存储引擎中非常关键的组成部分之一。 在InnoDB中,系统表空间是指用于存放共享表数据的空间。共享表指的是一些常用的系统表,比如mysql、performance_schema和innodb_sys等表,这些表的数据是存放在系统表空间中的。 i文件是InnoDB的系统表空间文件,它包含了InnoDB所有表的元数据信息。这些元数据信息包括表的结构、索引信息、表空间分配信息等,以及一些用于管理表空间的数据结构。这些信息对InnoDB存储引擎来说非常重要,因为它们可以用来保证数据的完整性和一致性,从而避免数据损坏或丢失的情况发生。 i文件的大小会根据InnoDB的配置或者使用情况发生变化,一般而言,i文件的大小与数据库中的数据量和使用频率有关。当数据库中的数据增加或者更新比较频繁时,i文件也会相应地增加。 因此,对于InnoDB存储引擎的应用程序来说,管理i文件非常重要。我们可以通过监控i文件的大小和使用情况,及时调整InnoDB的配置和清理无用的数据,以确保i文件能够正常工作,从而保证数据安全性和一致性。 ### 回答3: InnoDB系统数据文件'i'是InnoDB存储引擎用于在MySQL数据库中管理事务和数据一致性的文件之一。它是一个可扩展的系统表空间,用于存储InnoDB表和索引的元数据信息,包括表定义、约束、分区方案、索引、统计信息和事务状态信息等。i文件还包含InnoDB的事务日志文件,用于记录数据库中的所有更改,以便在系统崩溃或断电时恢复数据一致性。此外,i文件也存储了InnoDB的系统参数、监控信息和性能统计数据等信息。 i文件可以通过修改MySQL配置文件中的设置来调整其大小,例如可以增加innodb_data_file_path选项中的文件数目和大小来扩展i文件的容量。但是,在修改i文件的大小或添加新的数据文件之前,必须确保系统中的所有InnoDB表都已经被关闭或卸载,否则可能会导致数据丢失或表损坏。此外,i文件还需要定期备份和优化,以确保系统的性能和可靠性。 总之,InnoDB系统数据文件'i'是MySQL数据库中非常重要的文件之一,它在保障系统的数据一致性和可靠性方面扮演着重要的角色。因此,在使用MySQL时,我们应该仔细了解和管理这个文件,以确保系统的正常运行和数据安全。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值