最近,有个客户服务器上的MYSQL数据库经常出问题,出问题时网站表现为连接不上数据库,于是远程登录服务器发现MYSQL没有启动,手动启动MYSQL,启动不成功,重装MYSQL后可恢复正常,但过阵子又会出现相同问题。
于是静下心来寻找根本原因,通过查看服务器错误日志,发现MYSQL错误提示如下:
InnoDB: Attempted to open a previously opened tablespace. Previous tablespace 数据库名/数据表名 uses space ID: 2 at filepath: .\数据库名\数据表名.ibd. Cannot open tablespace mysql/innodb_index_stats which uses space ID: 2 at filepath: .\mysql\innodb_index_stats.ibd
For more information, see Help and Support Center at http://www.mysql.com.
经过多番调试,得出如下解决方案:
在my.ini中添加一行代码即可,具体代码为:
innodb_force_recovery = 1
至此MYSQL启动错误InnoDB: Attempted to open a previously opened tablespace.的问题完美解决,再遇到这个问题不用再重装MYSQL了,分享给遇到相同问题的朋友。
另附上Windows查看服务器错误日志的方法:
在“计算机”上点右键—“管理”
依次展开节点“诊断”—“事件查看器”—“Windows日志”—“应用程序”,即可查看相应的错误日志