La seule chose à laquelle je peux penser est d'inspecter ce que mysqld fait réellement en utilisant strace, en tant qu'utilisateur root :
strace -p 2959
Normalement, strace devrait bloquer immédiatement et vous montrer un appel à select(), car mysqld devrait attendre les connexions.
L'appel devrait ressembler à :
select(SOCKETNO, [OTHER_FDs], NULL, NULL, NULL)
particulièrement important est le quatrième paramètre, qui est un délai d'attente. Si NULL, cela signifie que mysqld va dormir jusqu'à ce que quelqu'un se connecte. S'il n'est pas NULL, cela signifie que mysqld attendra le temps spécifié, puis effectuera des travaux de maintenance. Un très petit intervalle de temps peut expliquer la consommation du processeur.
Je crois que MySQL utilise toujours un délai d'attente NULL (infini). C'est logique et c'est ainsi que se comportent les mysqlds que je peux atteindre maintenant.
Cependant, il peut y avoir des problèmes de gestion de connexion qui empêchent select de se remettre en veille. Vérifiez si ce comportement apparaît dès que mysqld démarre ou après que quelqu'un se connecte.