Вопрос или проблема
Я проверил более 25 ответов на AskUbuntu; ни один из них не подходит… Похоже, в данном случае я являюсь крайним случаем.
Я знаю, что был назначен пустой пароль, потому что в журнале MySQL есть запись, подтверждающая это. Несмотря на эту подсказку (в логах), я не могу войти с помощью mysql -u root -p
. Нажатие клавиши ввода в ответ на запрос пароля отклоняется как недействительное.
Как я уже сказал, это, похоже, крайний случай, поскольку все предлагаемые решения (которые я пробовал) предполагают, что, в случае пустого пароля, вы можете войти и изменить его.
Несмотря на то, что лог сообщает, что был назначен пустой пароль, я не могу войти с “пустым паролем” (то есть, нажимая на пароль).
СРЕДА
Ubuntu Studio 23.10
MySQL 8.0.36
ЛОГ MYSQL
2024-04-19T07:15:40.204390Z 0 [System] [MY-013172] [Server] Получен SHUTDOWN от пользователя <via user signal>. Закрытие mysqld (версия: 8.0.36-0ubuntu0.23.10.1).
...
2024-04-16T18:27:18.733173Z 6 [Warning] [MY-010453] [Server] root@localhost создан с пустым паролем! Пожалуйста, рассмотрите возможность отключения опции --initialize-insecure.
...
Если у вас есть (в /var/log/mysql, error.log):
[Warning] [MY-010453] [Server] root@localhost создан с пустым паролем! Пожалуйста, рассмотрите возможность отключения опции –initialize-insecure.
Установленное программное обеспечение:
- mysql Ver 8.0.40 для Linux на x86_64 (MySQL Community Server – GPL)
- Ubuntu 20.04.6 LTS (WSL Linux на Windows)
Проблема с паролем решена с помощью Руководства по MySQL 8.4 – 2.9.4 Обеспечение безопасности начальной учетной записи MySQL
Если учетная запись root существует, но не имеет пароля, подключитесь к серверу как root без пароля и назначьте пароль. Это происходит, если вы инициализировали каталог данных с использованием mysqld –initialize-insecure.
- Подключитесь к серверу как root без пароля:
$> sudo mysql -u root --skip-password
- Назначьте пароль:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
После назначения пароля учетной записи root вы должны каждый раз вводить этот пароль при подключении к серверу с использованием этой учетной записи. Например, чтобы подключиться к серверу с помощью клиент mysql, используйте эту команду:
$> sudo mysql -u root -p
Enter password: (введите пароль root здесь)
Ответ или решение
Конечно, изменение пароля root для MySQL может стать насущной задачей, особенно если учетная запись root была создана с пустым паролем. Ваша проблема обостряется тем фактом, что стандартные решения, основанные на доступе к MySQL с пустым паролем, не работают в вашем случае. Давайте разберем шаги, которые помогут вам установить новый пароль для root в MySQL 8.0.36 на Ubuntu Studio 23.10.
Шаги по изменению пароля root в MySQL:
-
Остановка службы MySQL:
Прежде чем вносить изменения, необходимо остановить запущенный сервер MySQL. Это можно сделать с помощью следующей команды:sudo systemctl stop mysql
-
Запуск MySQL в безопасном режиме:
Необходимо запустить сервер MySQL, игнорируя таблицы привилегий. Это позволит вам получить доступ к базе данных без использования паролей:sudo mysqld_safe --skip-grant-tables &
Этот процесс может занять некоторое время, так что будьте терпеливы.
-
Подключение к серверу MySQL:
Теперь вы можете подключиться к серверу MySQL без пароля, используя следующий команду:mysql -u root
-
Обновление пароля root:
Выполнив подключение, вам необходимо обновить пароль для учетной записи root:FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'new-password';
Замените
'new-password'
на ваш новый надежный пароль. -
Выход из MySQL и повторный запуск службы:
Выйдите из консоли MySQL командойexit
и затем перезапустите сервер MySQL, чтобы изменения вступили в силу:sudo systemctl start mysql
-
Тестирование новый пароля:
Проверьте, можете ли вы теперь войти в MySQL с новым паролем:mysql -u root -p
Введите новый пароль по запросу.
Важные замечания:
- Безопасность: Не забудьте установить сложный и безопасный пароль, чтобы защитить вашу базу данных.
- Документация: Ознакомьтесь с документацией MySQL, чтобы убедиться, что настройки безопасности соответствуют вашим потребностям.
Следуя этим инструкциям, вы сможете задать новый пароль для учетной записи root и решить проблему с доступом, что повысит безопасность вашей базы данных. Если трудности возникнут снова, обратитесь к логам MySQL для дополнительного анализа.