Перейти к содержимому

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

1

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

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

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

UXM

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

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

671 просмотр
Hector спросил 7 лет назад
H 6

2 ответа

2

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

@Hector Что имеет значение версия MySQL? Посмотрите мои изменения, чтобы понять, что я имею в виду.

JakeGould · 7 лет назад · 0

Это сообщение об ошибке, файл журнала 2018-11-23T01: 04: 26.841276Z 1 [Предупреждение] root @ localhost создан с пустым паролем! Пожалуйста, рассмотрите возможность отключения опции --initialize-insecure.

Hector · 7 лет назад · 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 · 7 лет назад · 0

@Hector Когда в сообщении об ошибке указывается, что root @ localhost создается с пустым паролем, то первая часть моего ответа, где я утверждаю, что вы можете просто ввести пустой пароль, остается верной. Ваша установка MySQL была настроена без пароля. Все, что вам нужно было сделать, чтобы войти в MySQL secure - это запустить mysql_secure_installation, и когда он запросит пароль, просто нажмите« Enter »или« Return », и все готово.

JakeGould · 7 лет назад · 0

Ну, я не знал. Я ранее настраивал локальные серверы на виртуальной коробке, и это происходит впервые. Я нажал «вернуться», и ничего не произошло. Я попробую еще раз на другом сервере. Сейчас я могу войти. Благодарю.

Hector · 7 лет назад · 1
JakeGould ответил 7 лет назад
J 30 738
0
Принятый ответ

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

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

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

Проверьте мой ответ. Нет причин, по которым вам нужно запускать команды mysql через sudo.

JakeGould · 7 лет назад · 0

@JakeGould на самом деле .. последние установки (Ubuntu, Mint, возможно, Debian) использовали аутентификацию сокетов Unix. Если подключение выполняется через сокет (по умолчанию для клиента mysql), то имя пользователя * nix является доверенным, и аутентификация выполняется автоматически. Я впервые свелся с ума, когда столкнулся с этим несколько месяцев назад, поскольку типичные шаги «перезапустить без привилегий и установить новый пароль для root» - все это работает без ошибок или других указаний. есть еще один столбец, который нуждается в обновлении для использования указанного набора паролей против аутентификации сокета.

ivanivan · 7 лет назад · 1

@ivanivan Полезно знать. Читайте об этом, и кажется, что это именно тот сценарий, с которым столкнулся оригинальный плакат. Обновил мой ответ, чтобы отразить эту новую информацию.

JakeGould · 7 лет назад · 1
Hector ответил 7 лет назад
H 6