1

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

yum install mysql-server

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

/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 об установке пароля для моего пользователя root, и когда я снова запустил mysql_secure_installation, он не принял мои данные, либо с пустым паролем, либо с паролем, который я установил ранее:

Error: Access denied for user 'root'@'localhost' (using password: NO)
Error: Access denied for user 'root'@'localhost' (using password: YES)

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

Я также пытался использовать

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

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

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

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

Спасибо,

YM

1 ответ1

0

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

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

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

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

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .