Проблемы сброса пароля MySQL в экземпляре Amazon EC2 "Amazon Linux"
Боролся с перезагрузкой root
пароль для MySQL на Amazon Linux, размещенный на EC2. Версия:
mysql Ver 14.14 Distrib 5.5.42, для Linux (x86_64) с использованием readline 5.1
При установке я решил, что будет разумно сменить пароль root на что-нибудь безопасное! Ура! Безопасность! За исключением того, что он не позволит мне войти с этим паролем сейчас, поэтому я пытаюсь сбросить его.
Я следовал инструкциям здесь, но это не работает. Я думал, что это могут быть разрешения на файл инициализации, но они установлены в rwxrwxrwt
так наверное нет, а может быть? Даже не уверен, какие файлы журналов нужно проверить, чтобы увидеть, где идет ошибка.
Итак, как я могу успешно сбросить пароль MySQL на EC2 Amazon Linux? Связан ли набор инструкций с предполагаемым, или Amazon делает что-то по-другому?
Также я спросил об этом на ServerFault, но не было "ясно", о чем я спрашивал. Я бы сказал, что здесь тоже не по теме, но...
3 ответа
Проверка выхода из работы mysqld_safe
это любезно указывает на то, что /var/log/mysqld
, Известная часть это говорит:
150830 6:32:18 [ERROR] /usr/libexec/mysqld: File '/home/ec2-user/mysql-init' not found (Errcode: 2)
Оказывается, что root не может получить доступ к этому местоположению. Переместил файл в /tmp/mysql-init
и тогда сброс пароля сработал.
В Amazon Linux, размещенном на экземпляре EC2, нет ничего волшебного. Причина, по которой все используют какой-то вариант Linux, заключается в том, что Linux - это Linux.
Тем не менее, это, как я сбрасываю MySQL root
пароли на серверах Ubuntu, если я столкнусь с такими проблемами. Общие концепции должны работать для любой версии Linux с небольшими изменениями, чтобы справиться со спецификой.
Во-первых, я бы остановил MySQL вот так; это команда, которую я бы использовал в Ubuntu:
sudo service mysql stop
Сделав это, запустите MySQL снова вручную с --skip-grant-tables
вариант; это считается рискованным для некоторых сред, поскольку в основном запускает MySQL со всеми разрешениями / разрешениями, предоставленными всем в мире. Но это то, что вам нужно сделать, чтобы исправить root
вопрос:
sudo mysqld --skip-grant-tables &
В некоторых случаях вам может потребоваться ввести полный путь к mysqld
или же mysqld_safe
чтобы это работало так:
sudo /usr/bin/mysqld_safe --skip-grant-tables &
Теперь, когда MySQL перезапущен с открытыми для него грантами, войдите в систему следующим образом:
mysql -u root mysql
Это в основном входит в систему как пользователь root
в базу данных mysql
который управляет всеми административными аспектами доступа MySQL.
Теперь запустите этот запрос; конечно изменить YOURNEWPASSWORD
соответствовать новому желаемому паролю, который вы хотите назначить root
пользователь:
UPDATE user SET Password=PASSWORD('YOURNEWPASSWORD') WHERE user='root'; FLUSH PRIVILEGES; exit;
Как вы можете видеть, это составная команда, которая выполняет UPDATE
, затем FLUSH PRIVILEGES
перезагрузить таблицы грантов MYSQL и exit
чтобы вытащить вас из MySQL.
С этим вы все должны быть настроены и root
должен сбросить пароль, чтобы соответствовать YOURNEWPASSWORD
Вы изменили это на.
Я боролся с этим пару часов, и я только что нашел решение.
В моем случае я пытался установить пароль для root
пользователь. Я видел это, когда я побежал select * from mysql.user;
пользователь root имел как plugin
Значение socket
, Я просто заставил изменения использовать mysql_native_password
Плагин, выполнив эту команду:
ALTER USER 'root'@'localhost' identified with mysql_native_password by 'password_goes_here'