Полная сброска MySQL

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

Я только что развернул сервер CentOS 6. Я установил на него mysql

yum install mysql-server

И после того как я запустил службу MySQL, она выдала в STDOUT кучу информации о необходимости смены пароля для моего корневого аккаунта. Я выполнил

/usr/bin/mysql_secure_installation

и следовал подсказкам.

Затем я понял, что версия MySQL, предлагаемая в репозиториях CentOS, сильно устарела, и я удалил её

service mysqld stop
yum remove mysql-*

Я скачал последнюю версию RPM MySQL Community Server с сайта Oracle и использовал

yum localinstall mysql-community-server-5.7.10-1.el6.x86_64.rpm
yum install mysql-community-server

Но когда я его запустил, я не получил никаких сообщений в STDOUT о необходимости установки пароля для моего корневого пользователя, и когда я снова запустил mysql_secure_installation, он не принял мои данные, как с пустым паролем, так и с паролем, который я установил ранее:

Ошибка: Доступ запрещен для пользователя 'root'@'localhost' (используя пароль: НЕТ)
Ошибка: Доступ запрещен для пользователя 'root'@'localhost' (используя пароль: ДА)

Я пробовал удалить mysql-community-server, вручную удалить /var/lib/mysql, вручную удалить /usr/share/mysql, а затем переустановить mysql-server, оригинальный пакет, который я установил, но я все равно не могу войти обратно в MySQL.

Я также пробовал использовать

mysql_safe --init-file=/home/resetPassword.sql

с файлом, который содержал команды для сброса аккаунта моего корневого пользователя и даже попытался создать новый корневой аккаунт, но это просто сбросило мою SSH-сессию и не сбросило мой пароль.

Я вошел как root, поэтому моя неприменимость sudo не должна иметь значения.

У меня нет никаких данных в базе данных, которые мне нужно сохранять, я просто хотел бы иметь возможность удалить её полностью и начать с нуля.

Спасибо,

YM

Окей, удалось решить эту проблему, хотя я не совсем уверен, как.

Вещи, которые я узнал:

  • Убедитесь, что все зависимости — последней версии, не запускайте что-то на 5.7.x и что-то еще на 5.5.x

  • Использование sudo для yum важно, даже когда вы вошли как root, поскольку в противном случае, похоже, права на файлы не настраиваются корректно

  • Удаление содержимого /var/lib/mysql и выполнение sudo mysqld --initialize сбрасывает всё

  • Когда сервер MySQL переинициализируется, он случайным образом генерирует временный пароль для корневого пользователя, который сохраняется в лог-файл. Я не уверен, почему при первой установке пароль не был установлен, возможно, это связано с тем, что я использовал более старую версию MySQL Server

  • Удаление /usr/share/mysql — плохая идея, так как файл errmsg.sys, находящийся там, по какой-то причине трудно переустановить.

  • Когда вы пытаетесь сбросить пароль для корневого пользователя, используя –init-file, убедитесь, что установленный вами пароль соответствует текущим требованиям к политике паролей.

Надеюсь, что-то из этого списка поможет кому-то другому.

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

Полный сброс MySQL на сервере CentOS 6

Введение

При установке и использовании MySQL на сервере CentOS 6 могут возникнуть проблемы с доступом к базе данных, особенно если версии MySQL различаются, или если сервер перезапускается с ранее настроенными пользователями и паролями. В данной статье мы подробно рассмотрим шаги, необходимые для полного сброса MySQL и устранения проблем, связанных с доступом к root-пользователю.

Запуск MySQL и Первоначальная Установка

После установки MySQL сервер может требовать изменения пароля для пользователя root. Это поведение встречается как в установленных версиях MySQL, так и в обновленных версиях. Однако если по какой-либо причине вы решили удалить старую версию и установить новую (например, MySQL Community Server), это может привести к потерям настроек и данных.

Процедура Удаления MySQL

Удаление MySQL требуется при необходимости полной перезагрузки сервера базы данных. Если вы хотите удалить MySQL, выполните следующие команды:

service mysqld stop
yum remove mysql-*

Эти команды останавливают сервер и удаляют все установленные пакеты MySQL.

Удаление Данных и Сброс Настроек

Чтобы полностью сбросить MySQL и удалить все данные, выполните дополнительные шаги:

  1. Удалите содержимое каталога данных MySQL:

    rm -rf /var/lib/mysql/*
  2. Иннициализируйте MySQL заново, используя следующую команду:

    mysqld --initialize

    Эта команда создаст новую базу данных и сгенерирует временный пароль для root-пользователя, который можно найти в лог-файле MySQL.

Установка Обновленной Версии MySQL

После удаления старых версий и сброса всех данных установите обновленную версию MySQL:

yum localinstall mysql-community-server-5.7.10-1.el6.x86_64.rpm
yum install mysql-community-server

Помощь Файла Запуска

Если вы все еще не можете получить доступ к MySQL, вы можете использовать параметр --init-file, чтобы сбросить пароль пользователя root через скрипт:

  1. Создайте файл resetPassword.sql со следующими командами:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'новыйПароль';
  2. Запустите MySQL в безопаcном режиме:

    mysql_safe --init-file=/home/resetPassword.sql

Рекомендации и Советы

  1. Версии Соответствия: Убедитесь, что все зависимости MySQL соответствуют одной версии. Несоответствие версий может привести к ошибкам и проблемам с доступом.

  2. Запуск Суперпользователя: Даже если вы работаете под пользователем root, используйте sudo с yum для установки пакетов. Это поможет избежать проблем с правами доступа.

  3. Рекомендации по Паролям: При сбросе пароля убедитесь, что он соответствует стандартам безопасности, применимым к вашей версии MySQL.

  4. Логи и Сообщения: Всегда проверяйте лог-файлы MySQL для получения информации о том, что происходит во время установки или инициализации.

Заключение

Сброс MySQL и установка обновлённой версии может быть сложной задачей, но следуя приведенным выше рекомендациям, вы сможете успешно восстановить доступ к вашему серверу. Ваши действия помогут избежать распространённых ошибок и повысят уровень безопасности вашего MySQL-сервера.

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

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