Bien que plusieurs de ces réponses soient utiles, plusieurs prêtent à confusion car l'utilisateur root unix et l'utilisateur root mysql ne sont pas les mêmes et n'ont fondamentalement aucune relation autre qu'ils utilisent tous les deux le nom de connexion 'root'. C'est peut-être évident, mais il semble que certaines réponses confondent les deux.
Ce qui pourrait être une option utile (peut-être existe-t-elle?) Pour mysqld serait d'autoriser des programmes clients tels que mysql ou mysqldump etc fonctionnant en tant que root unix à accéder à root @ localhost de mysqld sans mot de passe sans avoir à stocker le mot de passe de root @ localhost (mysql) dans un fichier my.cnf ou similaire.
Je sais que cela rend un peu nerveux mais le raisonnement est que n'importe qui s'exécutant en tant que racine unix locale (sur le serveur mysqld) peut contourner la sécurité de mysqld de toute façon, assez facilement. Et avoir un my.cnf avec le mot de passe root mysqld 7x24 ou même créer / supprimer un my.cnf avec le mot de passe root mysql (d'où vient ce mot de passe?) À la volée (par exemple, pour faire un mysqldump) fait me nerveux.
Cela nécessiterait une certaine infrastructure et une réflexion car il faudrait faire confiance à mysql / mysqldump / etc pour transmettre à mysqld qu'il croit vraiment qu'il est géré par un compte root unix local.
Mais par exemple, limiter uniquement à la socket Unix de mysqld, aucun TCP, pourrait au moins être une option fortement recommandée de cette option. Cela pourrait établir que le client fonctionne localement, ce qui n'est probablement pas tout à fait suffisant. Mais cela pourrait être le début d'une idée. Peut-être que l'envoi d'un descripteur de fichier sur un socket Unix pourrait être un autre élément (google si cela ressemble à un discours fou.)
PS Non, je ne vais pas essayer de réfléchir ici comment tout cela pourrait fonctionner sur un système d'exploitation non-unix, alors que l'idée se traduit probablement par d'autres systèmes d'exploitation.