Как мне получить мое имя пользователя и пароль MySQL?
-
08-06-2019 - |
Вопрос
Я потерял свое имя пользователя и пароль MySQL.Как мне его восстановить?
Решение
Остановите процесс MySQL.
Запустите процесс MySQL с параметром --skip-grant-tables.
Запустите консольный клиент MySQL с параметром -u root.
Перечислите всех пользователей;
SELECT * FROM mysql.user;
Сбросить пароль;
UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';
Но НЕ ЗАБЫВАЙ Для
Остановите процесс MySQL
Запустите процесс MySQL в обычном режиме (т. е.без опции --skip-grant-tables -пропустить-предоставить-таблицы)
когда вы закончите.В противном случае безопасность вашей базы данных может быть поставлена под угрозу.
Другие советы
К сожалению, ваш пароль пользователя невозможно восстановить.Он был хэширован с помощью одностороннего хэша, который, если вы не знаете, является необратимым.Я рекомендую использовать приведенный выше метод Xenph Yan и просто создать новый.
Вы также можете использовать следующую процедуру из руководство пользователя для сброса пароля для любого MySQL корень учетные записи в Windows:
- Войдите в свою систему как администратор.
- Остановите сервер MySQL, если он запущен.Для сервера, работающего как служба Windows, перейдите в раздел диспетчер служб:
Меню "Пуск" -> "Панель управления" -> "Администрирование" -> "Службы"
Затем найдите службу MySQL в списке и остановите ее.Если ваш сервер не запущен как служба, возможно, вам потребуется принудительно остановить его с помощью диспетчера задач.
Создайте текстовый файл и поместите в него следующие инструкции.Замените пароль на тот, который вы хотите использовать.
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; FLUSH PRIVILEGES;
Тот Самый Обновить и ПРОМЫВКА каждое утверждение должно быть написано в одной строке.Тот Самый Обновить инструкция сбрасывает пароль для всех существующих учетных записей root, и ПРОМЫВКА оператор сообщает серверу перезагрузить таблицы grant в память.
- Сохраните файл.В этом примере файлу будет присвоено имя C:\mysql-init.txt .
Откройте окно консоли, чтобы перейти к командной строке:
Меню "Пуск" -> Выполнить -> cmd
Запустите сервер MySQL со специальным --инициализация файла вариант:
C:\> C:\mysql\bin\mysqld-nt --init-file = C:\mysql-init.txt
Если вы установили MySQL в место, отличное от C:\mysql, соответствующим образом скорректируйте команду.
Сервер выполняет содержимое файла, названного --инициализация файла опция при запуске, меняющая каждый корень пароль учетной записи.
Вы также можете добавить --консоль опция для команды, если вы хотите, чтобы выходные данные сервера отображались в окне консоли, а не в файле журнала.
Если вы установили MySQL с помощью Мастера установки MySQL, возможно, вам потребуется указать --значенияпоумолчанию-файл вариант:
C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe" --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini" --init-file=C:\mysql-init.txt
Соответствующий --значенияпоумолчанию-файл настройки можно найти с помощью Диспетчера служб:
Меню "Пуск" -> "Панель управления" -> "Администрирование" -> "Службы"
Найдите службу MySQL в списке, щелкните по ней правой кнопкой мыши и выберите опцию Свойства.Поле Путь к исполняемому файлу содержит --значенияпоумолчанию-файл настройка.
- После успешного запуска сервера удалите C:\mysql-init.txt.
- Остановите сервер MySQL, затем снова перезапустите его в обычном режиме.Если вы запускаете сервер как службу, запустите его из окна служб Windows.Если вы запускаете сервер вручную, используйте любую команду, которую вы обычно используете.
Теперь вы должны иметь возможность подключиться к MySQL от имени root, используя новый пароль.
Улучшение самого полезного ответа здесь:
1] Нет необходимости перезапускать сервер mysql
2] Проблема безопасности сервера MySQL, подключенного к сети
Нет необходимости перезапускать сервер MySQL.
использование FLUSH PRIVILEGES;
после обновления mysql.инструкция пользователя для смены пароля.
Оператор FLUSH сообщает серверу перезагрузить таблицы grant в память, чтобы он заметил смену пароля.
Тот Самый --skip-grant-options
позволяет любому пользователю подключаться без пароля и со всеми привилегиями.Поскольку это небезопасно, вы, возможно, захотите
использование --таблицыпропусков-грантов в сочетании с --пропуститьсозданиесетей чтобы запретить удаленным клиентам подключаться.
От:ссылка: сброс настроек-разрешения-общие
Хотя вы не можете напрямую восстановить пароль MySQL без применения грубой силы, может быть другой способ - если вы использовали MySQL Workbench для подключения к базе данных и сохранили учетные данные в "хранилище", вы молодец.
В Windows учетные данные хранятся в %APPDATA%\MySQL\Workbench\workbench_user_data.dat - зашифрован с помощью Криптозащитные данные (без какой-либо дополнительной энтропии).Расшифровать все очень просто:
std::vector<unsigned char> decrypt(BYTE *input, size_t length) {
DATA_BLOB inblob { length, input };
DATA_BLOB outblob;
if (!CryptUnprotectData(&inblob, NULL, NULL, NULL, NULL, CRYPTPROTECT_UI_FORBIDDEN, &outblob)) {
throw std::runtime_error("Couldn't decrypt");
}
std::vector<unsigned char> output(length);
memcpy(&output[0], outblob.pbData, outblob.cbData);
return output;
}
Или вы можете проверить это Поток DonationCoder для исходного кода + исполняемый файл быстрой и грязной реализации.
Если у вас есть root-доступ к серверу, на котором запущен mysql, вы должны остановить сервер mysql с помощью этой команды
sudo service mysql stop
Теперь запустите mysql с помощью этой команды
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
Теперь вы можете войти в mysql с помощью
sudo mysql
FLUSH PRIVILEGES;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
С полными инструкциями можно ознакомиться здесь http://www.techmatterz.com/recover-mysql-root-password/
Делайте это без простоев
Выполните следующую команду в терминале для подключения к СУБД (вам нужен root-доступ):
sudo mysql -u root -p;
запустите обновление пароля целевого пользователя (в моем примере имя пользователя mousavi
и это пароль, который должен быть 123456
):
UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE user='mousavi';
на этом этапе вам нужно выполнить очистку, чтобы применить изменения:
FLUSH PRIVILEGES;
Сделано!Вы сделали это без какой-либо остановки или перезапуска службы mysql.
Войдите в MySQL из Windows cmd, используя существующего пользователя:
mysql -u имя пользователя -p
Введите пароль:****
Затем выполните следующую команду:
mysql> SELECT * FROM mysql.user;
После этого скопируйте зашифрованный пароль md5 для соответствующего пользователя, и в Интернете доступно несколько онлайн-приложений для расшифровки паролей.Используя это, расшифруйте пароль и используйте его для входа в систему в следующий раз.или обновите пароль пользователя с помощью текущей команды:
mysql> UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';
Затем войдите в систему, используя новый пароль и пользователя.
Хотя строгая, логичная, основанная на компьютерных науках интерпретация вопроса оп заключалась бы в том, чтобы потребовать и то , и другое "Как мне получить мое имя пользователя в MySQL" и "пароль" - я подумал, что кому-то может быть полезно также обратиться к или интерпретация.Другими словами ...
1) Как мне получить мое имя пользователя в MySQL?
или
2) пароль
Это последнее условие, кажется, уже было подробно рассмотрено, так что я не буду утруждать себя этим.Ниже приведено решение только для случая "Как мне восстановить мое имя пользователя MySQL".Привет.
Чтобы найти ваше имя пользователя mysql , выполните следующие команды из командной оболочки mysql ...
ВЫБЕРИТЕ Пользователя ИЗ mysql.user;
он напечатает таблицу всех пользователей mysql.
ЕСЛИ у вас случайно настроен ODBC, вы можете получить пароль из конфигурационного файла ODBC.Это находится в /etc/odbc.ini для Linux и в папке Software/ ODBC в реестре в Windows (их несколько - может потребоваться некоторое время поиска)
Для пользователя window вы можете следовать следующим инструкциям руководство чтобы сбросить свой пароль