Как сбросить пароль root MySQL (даже если вы его забыли)
О-о. Вы только что поняли, что забыли свой корневой пароль MySQL в своем экземпляре Amazon Web Services (AWS) EC2 Linux или где-либо еще. Это руководство поможет вам начать работу в любой системе, чтобы сбросить утерянный пароль root для MySQL.
Вы попытались войти в MySQL, используя правильный пароль для учетной записи root, и увидели это зловещее сообщение:
mysqladmin: ошибка подключения к серверу на «localhost»: «Доступ запрещен для пользователя «root» @ «localhost» (с использованием пароля: YES)
Вы попробовали еще раз, чтобы убедиться, что вы не ошиблись, и получили тот же результат.
Поскольку учетная запись root обычно является «высшей» учетной записью администратора в любой установке MySQL, она быстро понимает, что у вас есть серьезная проблема.
Теперь вы готовы биться головой о стол. Несколько раз.
Прежде всего: расслабьтесь. Не все потеряно.
Пока у вас есть права на ваш экземпляр EC2, вы можете сбросить пароль и снова вернуться к работе.
К сожалению, может быть немного утомительно просматривать всю документацию MySQL, чтобы найти именно то, что вы ищете. Это особенно верно, когда вы хотите быстро сбросить пароль, чтобы вы могли выполнить свою работу.
Но не волнуйтесь. Вот пошаговое руководство по сбросу корневого пароля MySQL.
Шаг 1: Войдите на свой сервер Linux
Начните с входа на сервер Linux, как обычно.
Здесь вы будете запускать и останавливать службу, поэтому лучше всего делать все от имени пользователя root. Когда вы получите приглашение, введите следующую команду:
судо -с
Как только вы это сделаете, у вас будет root-доступ для всех ваших будущих команд, поэтому вам не придется каждый раз добавлять к ним префикс «sudo».
Обратите внимание: корневой доступ к MySQL полностью отличается от корневого доступа к вашему экземпляру MySQL, несмотря на то, что они имеют одно и то же имя.
Шаг 2: Остановите демон MySQL
Вы, наверное, знаете, что в установке MySQL есть три исполняемых компонента: клиент, утилита администрирования и сервер.
Клиент запускается с исполняемым файлом «mysql». Это дает вам доступ к командной строке для управления административными функциями в MySQL.
Административная утилита запускается с исполняемым файлом «mysqladmin». Вероятно, вы использовали его для первоначальной установки пароля при первой установке MySQL.
Сервер запускается с исполняемым файлом «mysqld». «d» в конце его имени означает, что он работает как «демон» — термин Unix для процесса, который работает как служба в фоновом режиме.
Прежде чем вы сможете сбросить свой пароль MySQL, вам придется остановить этого демона. Вы можете легко сделать это с помощью команды «service». Просто зайдите в командную строку и введите:
служба mysqld останавливается
Если вы вошли в систему как пользователь root, вы должны увидеть такой ответ:
Остановка mysqld: [ОК]
Это означает, что вы успешно остановили службу.
Шаг 3: Запустите демон MySQL без пароля
Теперь, когда вы остановили демон MySQL, пришло время запустить его снова.
Это кажется странным, не так ли?
Предупреждение здесь заключается в том, что когда вы перезапускаете демон MySQL, вы запускаете его так, чтобы любой мог получить доступ к базам данных. Очевидно, что это крайне опасная ситуация, и оставлять ее так надолго не хочется, поэтому лучше завершить весь процесс сброса пароля как можно быстрее.
Вот команда для запуска демона, чтобы вы могли войти в систему без пароля:
mysqld_safe ‐ пропуск грант-таблиц и
Там много чего происходит, поэтому давайте рассмотрим каждую часть в отдельности.
Исполняемый файл mysqld_safe является рекомендуемым способом запуска демона MySQL. Вы не используете здесь команду «service», потому что вам нужно добавить некоторые параметры командной строки.
Опция --skip-grant-tables выполняет именно то, что вы думаете. Он говорит MySQL не беспокоиться о том, какой пользователь имеет права, и просто пускать всех без пароля.
Амперсанд в конце указывает вашему инстансу EC2 Linux запустить процесс в фоновом режиме. Таким образом, вы можете выполнять другие действия в том же окне во время работы демона.
Однако вам, вероятно, придется снова нажать Enter, чтобы увидеть командную строку.
Шаг 4: Подключитесь к серверу MySQL без пароля
Теперь введите в командной строке следующее:
mysql -u корень
Обычно вы должны следовать этой команде с -p. Однако в этом случае вы не используете этот параметр, потому что вы входите в систему без пароля.
Вы также заметите, что сервер MySQL позволяет вам войти сразу. Вы должны увидеть это приглашение:
mysql>
Поздравляем! Теперь вы находитесь в MySQL с полными правами доступа, хотя и не вводили пароль.
Еще раз: не оставляйте вашу систему в таком состоянии слишком долго.
Теперь введите следующую команду:
использовать mysql;
Это изменяет базу данных, которую вы используете, на системную базу данных MySQL.
Далее введите это:
обновить пароль пользователя = ПАРОЛЬ («[НОВЫЙ ПАРОЛЬ]»), где Пользователь = 'root';
Это устанавливает новый пароль root. Очевидно, вы замените текст [НОВЫЙ ПАРОЛЬ], который вы видите выше, своим новым паролем.
Следующий:
сброс привилегий;
Эта команда просто говорит MySQL немедленно ввести новые изменения в силу и не ждать перезапуска сервера.
Окончательно:
покидать
Это выводит вас из клиента mysql.
Шаг 5: Остановите демон MySQL (снова)
Затем вы собираетесь остановить демон MySQL, который вы запустили ранее, потому что в настоящее время он предоставляет всем полный доступ без пароля.
Введите знакомую команду:
служба mysqld останавливается
Вы увидите немного другой результат, чем в прошлый раз. Это потому, что вы запустили демон без использования сервисной команды.
Вывод будет выглядеть примерно так:
[1]+ Выполнено mysqld_safe --skip-grant-tables
Шаг 6: Перезапустите и проверьте
Теперь вы готовы перезапустить сервер MySQL обычным способом и проверить новый пароль.
Сначала запустите сервер:
запуск службы mysqld
Вы должны увидеть знакомое [OK] в ответ.
Теперь проверьте новый пароль:
mysql -u корень -p
Это заставит вас ввести пароль. Обязательно введите тот же пароль, который вы использовали при сбросе два шага назад.
Еще раз: поздравляю! Вы только что восстановили свой пароль.
Подведение итогов
Не все потеряно, если вы забыли пароль root для MySQL. Приложив немного усилий, вы можете сбросить его, чтобы ваши базы данных по-прежнему были в безопасности, и у вас был доступ к важным административным функциям MySQL.