Sebbene molte di queste risposte siano utili, molte sono confuse perché l'utente root unix e l'utente root mysql non sono uguali e fondamentalmente non hanno relazioni diverse da quelle che usano entrambi il nome di accesso 'root'. Forse è ovvio, ma sembra che alcune risposte confondano i due.
Quale potrebbe essere un'opzione utile (forse esiste?) A mysqld sarebbe quella di consentire a programmi client come mysql o mysqldump ecc. In esecuzione come root unix di accedere a root @ localhost di mysqld senza password senza dover memorizzare la password di root @ localhost (mysql) in un file my.cnf o simile.
So che rende nervoso, ma il ragionamento è che chiunque esegua come root unix locale (al server mysqld) può aggirare la sicurezza di mysqld comunque, abbastanza facilmente. E avere un my.cnf con la password di root mysqld 7x24 o persino creare / eliminare un my.cnf con la password di root mysql (da dove viene quella password?) Al volo (ad esempio, per fare un mysqldump) mi rende nervoso.
Richiederebbe qualche infrastruttura e pensiero perché si dovrebbe fidare di mysql / mysqldump / etc per trasmettere a mysqld che crede davvero che sia gestito da un account root unix locale.
Ma per esempio limitare al solo socket unix di mysqld, nessun TCP, potrebbe aiutare, almeno come opzione fortemente raccomandata di questa opzione. Ciò potrebbe stabilire che il client è in esecuzione localmente anche se probabilmente non è abbastanza. Ma potrebbe essere l'inizio di un'idea. Forse l'invio di un descrittore di file su un socket unix potrebbe essere un altro pezzo (cercalo su Google se sembra un discorso folle).
PS No, non ho intenzione di fare un brainstorming proprio qui su come qualcosa di tutto ciò potrebbe funzionare su un sistema operativo non unix, anche se l'idea si traduce probabilmente in altri sistemi operativi.