Хотя некоторые из этих ответов полезны, некоторые вводят в заблуждение, потому что root-пользователь unix и root-пользователь mysql не совпадают и, по сути, не имеют никакого отношения, кроме того, что оба используют логин «root». Может быть, это очевидно, но, похоже, некоторые ответы объединяют их.
Что может быть полезным вариантом (возможно, существует?) Для mysqld, это разрешить клиентским программам, таким как mysql или mysqldump и т. Д., Работающим от имени пользователя root, получать доступ к root @ localhost mysqld без пароля без необходимости хранить пароль root @ localhost (mysql). в файле my.cnf или аналогичном.
Я знаю, что это немного нервирует, но причина в том, что любой, работающий как локальный (для сервера mysqld) корень unix, может в любом случае легко обойти безопасность mysqld. А наличие my.cnf с паролем root mysqld 7x24 или даже создание / удаление my.cnf с паролем root mysql (откуда этот пароль взялся?) На лету (например, для выполнения mysqldump) заставляет меня нервничать.
Это потребовало бы некоторой инфраструктуры и размышлений, потому что нужно было бы доверять mysql / mysqldump / etc для передачи mysqld, что он действительно верит, что он запускается локальной учетной записью root unix.
Но, например, ограничение только unix-сокетом mysqld, без TCP, может помочь, по крайней мере, как настоятельно рекомендуемый вариант этой опции. Это может установить, что клиент работает локально, хотя этого, вероятно, недостаточно. Но это может быть началом идеи. Возможно, отправка файлового дескриптора через сокет Unix могла бы быть другой частью (Google, если это звучит как сумасшедший разговор)
PS Нет, я не собираюсь прямо сейчас рассуждать о том, как все это может работать в не-Unix операционной системе, хотя эта идея, вероятно, переводится на другие ОС.