近期遇到的奇葩的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问题

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

Logo

更多推荐