mysql_secure_installation запрашивает пароль root на RHEL 8, но пароль не установлен. Что делать?

Вопрос или проблема

На совершенно новой установке mysql на RHEL 8 меня ни разу не спрашивают о том, чтобы установить пароль для пользователя root. Когда я запускаю mysql_secure_installation, он запрашивает пароль для пользователя root. У меня этого пароля нет, и оставлять его пустым тоже не работает.

Сначала я проверил этот вопрос, но, похоже, он не решает мою проблему. Запуск команды с sudo ничего не меняет, а /var/log/mysql/mysql.log не существует, чтобы проверить временный пароль.

Как я могу установить этот пароль при первоначальной настройке? mysql -u root --skip-password, sudo mysql и использование файла инициализации также не сработали.


Обновление: Этот вопрос имеет решение, которое включает использование файла инициализации, что, как я уже отметил, не сработало.

“Когда я запускаю mysql_secure_installation, он запрашивает пароль для пользователя root. У меня нет этого пароля, и оставлять его пустым тоже не работает.”

Это потому, что у вас не установлен пароль пользователя root. Следуйте этим шагам, чтобы установить пароль пользователя root с MySQL 8.0.

Первое, что нужно знать, это то, что старый метод mysqld_safe больше не работает… Подробности ниже.

mysqld_safe (бинарный/скриптовый файл) безусловно больше не является частью пакета MySQL 8 (8.0.36) в Red Hat 8 и, возможно, других дистрибутивах Linux.

Он мог исчезнуть (в качестве бинарного/скриптового файла) из установки MySQL на системах, управляемых systemd, начиная с MySQL 5.7.6 согласно ответу на Stack Overflow:

“Начиная с MySQL 5.7.6, для установки MySQL с использованием RPM-дистрибутива запуск и остановка сервера управляются systemd на нескольких платформах Linux. На этих платформах mysqld_safe больше не устанавливается, так как это излишне. Для получения дополнительной информации см. Раздел 2.5.10, «Управление сервером MySQL с помощью systemd».”

Независимо от причины, если вы получаете это сообщение при попытке запустить mysqld_safe:

mysqld_safe: команда не найдена

И ваша система работает на systemd (также известном как: systemctl), то это точно современный ответ, который решит ваши проблемы в 4 простых шага! Поехали!

  1. Остановите mysqld и перезапустите его с правильными MYSQLD_OPTS:
    sudo service mysqld stop;
    sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking";
    sudo service mysqld start;
    
  2. После запуска MySQL войдите в MySQL как root без пароля:
    mysql -u root;
    
  3. Теперь в MySQL выполните эти команды; обратите внимание, что [пароль] следует заменить на тот пароль MySQL, который вы хотите установить:
    FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '[пароль]';
    FLUSH PRIVILEGES;
    exit;
    

    Обратите внимание, я считаю, что первый FLUSH PRIVILEGES; связан с запуском MySQL с установленным MYSQLD_OPTS равным --skip-grant-tables. В любом случае, запуск FLUSH PRIVILEGES; не несет никакого риска/опасности.

  4. Теперь верните MYSQLD_OPTS и перезапустите MySQL следующим образом:
    sudo service mysqld stop;
    sudo systemctl unset-environment MYSQLD_OPTS;
    sudo service mysqld start;
    

Теперь, когда все это сделано, попробуйте войти в MySQL как root с паролем следующим образом:

mysql -u root -p

Нажмите Enter/Return, затем введите свой новый root пароль и… вуаля! Вы должны войти в MySQL как root!


Примечание: Я выбрал установить пароль с помощью плагина аутентификации caching_sha2_password, но если вы хотите быть более современным, вы можете использовать mysql_native_password следующим образом:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[пароль]';

Ответ или решение

Установка пароля root для MySQL на RHEL 8

Введение

При установке MySQL на минимально настроенной системе RHEL 8 может возникнуть проблема, когда вы не задаете пароль для пользователя root. При попытке запустить mysql_secure_installation, система запрашивает пароль, но поскольку он не был установлен, доступ невозможен. В данной статье мы подробно рассмотрим, как установить пароль для пользователя root, используя современные методы, совместимые с MySQL 8.0.

Шаг 1: Остановка службы MySQL

Первым делом необходимо остановить службу MySQL. Для этого используйте команду:

sudo systemctl stop mysqld

Шаг 2: Запуск MySQL в безопасном режиме

Затем вы должны запустить MySQL с параметрами, которые отключат проверку прав доступа и сетевые подключения. Это позволит вам войти в систему без пароля.

sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking"
sudo systemctl start mysqld

Шаг 3: Вход в MySQL без пароля

Теперь вы можете подключиться к серверу MySQL без пароля:

mysql -u root

Шаг 4: Установка нового пароля для пользователя root

После входа в MySQL выполните следующие команды для установки нового пароля. Не забудьте заменить [password] на желаемый пароль:

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '[password]';
FLUSH PRIVILEGES;
exit;

Первая команда FLUSH PRIVILEGES; применяется для обновления прав пользователей, а вторая команда устанавливает новый пароль для пользователя root.

Шаг 5: Возвращение к нормальным параметрам

После успешной установки пароля необходимо вернуть MySQL в обычный режим работы. Для этого:

sudo systemctl unset-environment MYSQLD_OPTS
sudo systemctl stop mysqld
sudo systemctl start mysqld

Шаг 6: Проверка работы

Теперь вы можете проверить, сможете ли вы войти в систему под пользователем root с использованием нового пароля:

mysql -u root -p

Введите установленный вами пароль, и если все прошло успешно, вы получите доступ к MySQL.

Заключение

Установка пароля для пользователя root в MySQL 8 на RHEL 8 — это процесс, который может показаться сложным, но, следуя вышеописанным шагам, вы сможете решить проблему на ранней стадии настройки системы. Если у вас возникли трудности, не стесняйтесь заглядывать в справочную документацию MySQL или обращаться за помощью в сообщества.

SEO-Оптимизация

Если вы ищете информацию о том, как установить пароль для root в MySQL на RHEL 8, этот гайд предоставляет четкие инструкции и решения, защищая вашу систему от возможных угроз безопасности. Обязательно применяйте безопасные практики и следите за актуальными версиями программного обеспечения.

Оцените материал
Добавить комментарий

Капча загружается...