Хотя оригинальный постер утверждает, что нашел ответ на этот вопрос в этом ответе, для меня это не имело никакого смысла. Но теперь я понимаю, что некоторые дистрибутивы Debian / Ubuntu используют метод аутентификации на основе сокетов. Этот метод аутентификации, включаемый по умолчанию, естественно, потребует одного использования sudo
для входа в MySQL, как они описывают.
Но в целом нет смысла бежать mysql_secure_installation
через sudo
. В большинстве случаев это не имеет смысла, поскольку MySQL не требуется sudo
для клиентской транзакции, подобной этой ... Если только не работает аутентификация на основе сокетов. И mysql_secure_installation
это всего лишь скрипт Bash, который выполняет кучу команд в удобном и удобном пакете, позволяющем обновлять некоторые элементы безопасности, связанные с MySQL. Просто посмотрите на исходный код, чтобы понять, что я имею в виду.
Поэтому, если вы работаете в системе, в которой не используется аутентификация на основе сокетов, и сталкиваетесь с подобной проблемой, решение состоит в том, что либо пароль будет пустым для старых версий MySQL. Так что вы просто запустите это, чтобы попасть в MySQL:
mysql -uroot -p
Или в случае mysql_secure_installation
, просто нажмите Returnили Enterкогда появится запрос на ввод пароля.
Или для современных версий MySQL - я полагаю, MySQL 5.7 или выше - вам нужно проверить журнал ошибок на наличие такого сообщения:
«2016-05-16T07: 09: 49.796912Z 1 [Примечание] Для root @ localhost: 8) 13ftQG5OYl генерируется временный пароль»
Это пример, взятый из записи в блоге Persona по этой теме . Относительно того, где находится эта запись в журнале MySQL, она может находиться /var/log/mysqld.log
на сервере CentOS / RedHat или отображаться как выходные данные пакета, установленного в системах Ubuntu / Debian.
Но простая проверка журнала ошибок на наличие «временного пароля» предоставит вам исходный root
пароль, который MySQL устанавливает при первой установке.