Какой у меня MySQL пароль root

468
Hector

Я только что установил MySQL-сервер с помощью следующей команды

$ sudo apt install mysql-server mysql-client mysql-common 

Затем, когда я вызываю команду, mysql_secure_installationMySQL просит ввести пароль root:

UXM

Я не установил пароль для mysql-сервера и спрашивает меня об этом.

Как я могу установить правильный пароль? Есть ли пароль по умолчанию?

1
Я ничего не настраивал Hector 5 лет назад 0
Пожалуйста, оставьте текст, нет ссылки на изображение. RalfFriedl 5 лет назад 0

2 ответа на вопрос

2
JakeGould

Хотя оригинальный постер утверждает, что нашел ответ на этот вопрос в этом ответе, для меня это не имело никакого смысла. Но теперь я понимаю, что некоторые дистрибутивы 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 устанавливает при первой установке.

Какая версия MySQL у вас есть? Hector 5 лет назад 0
@Hector Что имеет значение версия MySQL? Посмотрите мои изменения, чтобы понять, что я имею в виду. JakeGould 5 лет назад 0
Это сообщение об ошибке, файл журнала `2018-11-23T01: 04: 26.841276Z 1 [Предупреждение] root @ localhost создан с пустым паролем! Пожалуйста, рассмотрите возможность отключения опции --initialize-insecure. ` Hector 5 лет назад 1
Также я изменил пароль, выполнив шаг 3 этой установки и настройки Digital Ocean MySQL https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-18-04. Но я должен был "sudo" войти в "mysql". Я перезагружаю сервер, я проверял логин mysql, и мне не нужно `sudo 'проходить в MySQL от терминала к серверу. Hector 5 лет назад 0
@Hector Когда в сообщении об ошибке указывается, что `root @ localhost создается с пустым паролем`, то первая часть моего ответа, где я утверждаю, что вы можете просто ввести пустой пароль, остается верной. Ваша установка MySQL была настроена без пароля. Все, что вам нужно было сделать, чтобы войти в MySQL secure - это запустить `mysql_secure_installation`, и когда он запросит пароль, просто нажмите« Enter »или« Return », и все готово. JakeGould 5 лет назад 0
Ну, я не знал. Я ранее настраивал локальные серверы на виртуальной коробке, и это происходит впервые. Я нажал «вернуться», и ничего не произошло. Я попробую еще раз на другом сервере. Сейчас я могу войти. Благодарю. Hector 5 лет назад 1
0
Hector

Я нашел решение. Это должно быть выполнено какsuperuser

Я должен был казнить $ sudo mysql_secure_installation

Кроме того, если я хочу войти в систему mysqlна терминале, я должен sudoэто

[Проверьте мой ответ] (https://superuser.com/a/1377703/167207). Нет причин, по которым вам нужно запускать команды mysql через sudo. JakeGould 5 лет назад 0
@JakeGould на самом деле .. последние установки (Ubuntu, Mint, возможно, Debian) использовали аутентификацию сокетов Unix. Если подключение выполняется через сокет (по умолчанию для клиента mysql), то имя пользователя * nix является доверенным, и аутентификация выполняется автоматически. Я впервые свелся с ума, когда столкнулся с этим несколько месяцев назад, поскольку типичные шаги «перезапустить без привилегий и установить новый пароль для root» - все это работает без ошибок или других указаний. есть еще один столбец, который нуждается в обновлении для использования указанного набора паролей против аутентификации сокета. ivanivan 5 лет назад 1
@ivanivan Полезно знать. Читайте об этом, и кажется, что это именно тот сценарий, с которым столкнулся оригинальный плакат. Обновил мой ответ, чтобы отразить эту новую информацию. JakeGould 5 лет назад 1