Error number: MY-013246; Symbol: ER_IB_MSG_MADV_DONTDUMP_UNSUPPORTED; SQLSTATE: HY000
Message: Disabling @@core_file because @@innodb_buffer_pool_in_core_file is disabled, yet MADV_DONTDUMP is not supported on this platform
MY-013246 对应的错误是 ER_IB_MSG_MADV_DONTDUMP_UNSUPPORTED,它属于MySQL引擎。 这个错误表明当前操作系统平台不支持MADV_DONTDUMP, 因此在某些情况下MySQL不能使用足够的空间来初始化buffer pool。
这个错误属于MySQL版本5.7时出现的,通常出现在启动MySQL引擎的时候,在启动日志中出现相关的报错信息:
“[ERROR] InnoDB: Operating system error number 22 in a file operation.Failed to set MADV_DONTDUMP parameters to the memory.”
解决MY-013246这个错误,首先要在MySQL的my.cnf文件中,添加并且设置innodb_dedicated_server系统变量,以让MySQL引擎能够正确地识别操作系统。
如果MySQL仍然无法识别操作系统,那么可以考虑重新安装MySQL,或者升级MySQL版本。在升级MySQL版本之前,建议做好完整的备份。
如果上述未能解决问题,则启动mysqld_safe –skip-madv_dontdump 命令,即可禁用MADV_DONTDUMP 功能,但是其不会解决系统的问题,只能做为一个临时的解决方案。
如果这个错误是由MySQL重启而引起的,则可以设置该变量,并且重启MySQL,让MySQL能够正常工作:
SET GLOBAL innodb_dedicated_server=1;
另外,需要注意,在使用innoDB暂停文件时,也可能出现类似错误,因此,应当避免使用这种特殊方式,以避免出现问题。