MySQL Error number: MY-013847; Symbol: ER_MY_MALLOC_USING_JEMALLOC; SQLSTATE: HY000 报错 故障修复 远程处理
文档解释
Error number: MY-013847; Symbol: ER_MY_MALLOC_USING_JEMALLOC; SQLSTATE: HY000
Message: Using jemalloc.dll for my_malloc and ut::malloc etc.
错误说明
错误number MY-013847; Symbol: ER_MY_MALLOC_USING_JEMALLOC; SQLSTATE: HY000暗示MySQL正在尝试使用Jemalloc运行内存分配,但是在当前环境中Jemalloc不可用或者不存在。
MySQL使用内存分配器作为内部机制,它从其他池中分配内存,用于内存管理和管理。可选内存分配器有Jemalloc、System Malloc(系统分配器)和Tcmalloc,它们的实现取决于操作系统和环境。
当MySQL尝试使用Jemalloc时,但实际上不可用(不存在)时,就会报出这个错误,尤其是当MySQL版本低于5.6.3时,因为Jemalloc只在5.6.3及以上版本中支持。
常见案例
在某些情况下,SMF或RedHat安装MySQL,并使用–with-jemalloc选项时,可能会出现这个错误。当MySQL尝试使用Jemalloc内存分配器时,如果Jemalloc库不可用或不存在,就会报出这个错误。
另外,如果尝试使用非官方自定义构建MySQL时,如果没有正确的Jemalloc库,也会引发该错误。
解决方法
要解决此错误,应该检查Jemalloc是否已安装在系统中,并检查环境变量是否正确设置。
另一种解决方案是更新MySQL安装,以便使用build 5.6.3或更高版本,因为Jemalloc在更高版本中可用,而且更新可以保留旧的配置并自动应用更改。
最后,还可以检查MySQL的启动过程参数,查看是否使用非官方编译,这会影响该错误的出现。如果检测到自定义构建,了解内存分配器是关键。