Error number: MY-010982; Symbol: ER_RES_GRP_SET_THR_AFFINITY_FAILED; SQLSTATE: HY000
Message: Unable to bind thread id %llu to cpu id %u (error code %d – %s).
错误说明
MY-010982 旨在提醒用户的是ER_RES_GRP_SET_THR_AFFINITY_FAILED MySQL错误。当MySQL尝试将线程绑定到指定的CPU核心时会抛出此错误。
常见案例
如果MySQL管理员配置了线程绑定(Affinity)技术,并开启了–thread-handling=no-threads启动MySQL服务器。也有可能是缺少在系统中支持让MySQL使用的CPU核心设置,而MySQL服务器无法在系大化绑定线程到它们上面。
解决方法
MySQL需要禁用–thread-handling=no-threads启动参数,或者在操作系统上启用CPU核心来解决ER_RES_GRP_SET_THR_AFFINITY_FAILED错误。
为了禁用–thread-handling参数,需要编辑MySQL配置文件my.cnf,可以在mysqld节点上添加–thread-handling=pool-of-threads,并重新启动MySQL服务器。
在系统上启用CPU核心,可以更改/proc/sys/kernel中设置的(安全)进程可以使用特定CPU设置,以及让MySQL服务器正确使用这些步骤处理其线程。
步骤1:检查到/proc/sys/kernel/sched_domain目录
步骤2:将其中0到CPU_SETSIZE范围内的所有变量设置为'1’;
步骤3:为/proc/cpuinfo中给出的特定CPU设置变量值;
步骤4:重新启动MySQL服务器,解决ER_RES_GRP_SET_THR_AFFINITY_FAILED错误。