Я потерял свое имя пользователя и пароль MySQL. Как я могу получить это?
Я потерял свое имя пользователя и пароль 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)
когда вы закончите. В противном случае безопасность вашей базы данных может быть нарушена.
dpkg-reconfigure mysql-server-5.5
команды для сброса корневого пароля MySQL?
-u
при запуске сервера он игнорируется --skip-grant-tables
.
mysql.user
вызываемом password
, используйте authentication_string
вместо этого.
К сожалению, ваш пароль пользователя необратим. Он был хеширован односторонним хешем, который, если вы не знаете, необратим. Я рекомендую пойти с Xenph Yan выше и просто создать новый.
Вы также можете использовать следующую процедуру из руководства для сброса пароля для любых корневых учетных записей MySQL в Windows:
Пуск -> Панель управления -> Администрирование -> Сервисы
Затем найдите службу MySQL в списке и остановите ее. Если ваш сервер не работает как служба, вам может потребоваться использовать диспетчер задач, чтобы принудительно остановить его.
Создайте текстовый файл и поместите в него следующие операторы. Замените пароль на пароль, который вы хотите использовать.
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;
В UPDATE и FLUSH заявления каждый должен быть написан на одной строке. Оператор UPDATE сбрасывает пароль для всех существующих корневых учетных записей, а оператор FLUSH сообщает серверу перезагрузить таблицы предоставления в память.
Откройте окно консоли, чтобы перейти к командной строке:
Меню Пуск -> Выполнить -> cmd
Запустите сервер MySQL с помощью специальной опции --init-file :
C:\> C:\mysql\bin\mysqld-nt --init-file = C:\mysql-init.txt
Если вы установили MySQL в папку, отличную от C: \ mysql , измените команду соответствующим образом.
Сервер запускает содержимое файла, названного параметром --init-file, при запуске, изменяя пароль каждой учетной записи root .
Вы также можете добавить в команду параметр --console, если хотите, чтобы выходные данные сервера отображались в окне консоли, а не в файле журнала.
Если вы установили MySQL с помощью мастера установки MySQL, вам может потребоваться указать параметр --defaults-file :
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
Соответствующий параметр --defaults-file можно найти с помощью диспетчера служб:
Пуск -> Панель управления -> Администрирование -> Сервисы
Найдите сервис MySQL в списке, щелкните его правой кнопкой мыши и выберите «Свойства». Поле Путь к исполняемому файлу содержит параметр --defaults-file .
Теперь вы сможете подключиться к MySQL с правами суперпользователя, используя новый пароль.
mysqld-nt
вместо mysqld
?
Улучшение наиболее полезного ответа здесь:
1] Нет необходимости перезапускать сервер mysql.
2] Проблема безопасности для сервера MySQL, подключенного к сети.
Нет необходимости перезагружать сервер MySQL.
используйте FLUSH PRIVILEGES;
после обновления оператор mysql.user для смены пароля.
Оператор FLUSH сообщает серверу перезагрузить таблицы предоставления в память, чтобы он заметил изменение пароля.
--skip-grant-options
Позволяет любому соединяться без пароля и со всеми привилегиями. Поскольку это небезопасно, вы можете захотеть
используйте --skip-grant-tables вместе с --skip-network для предотвращения подключения удаленных клиентов.
from: reference: сброс-разрешения-универсальный
mysql.user
? Однако часто это не так.
Хотя вы не можете напрямую восстановить пароль MySQL без брутфорсинга, возможно, есть и другой способ - если вы использовали MySQL Workbench для подключения к базе данных и сохранили учетные данные в «хранилище», вы - золотой.
В Windows учетные данные хранятся в папке % APPDATA% \ MySQL \ Workbench \ workbench_user_data.dat - зашифрованы с помощью CryptProtectData (без какой-либо дополнительной энтропии). Расшифровка легко peasy:
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-доступ):
sudo mysql -u root -p;
запустите обновление пароля целевого пользователя (для моего примера имя пользователя mousavi
и его пароль должны быть 123456
):
UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE user='mousavi';
на этом этапе вам необходимо выполнить сброс, чтобы применить изменения:
FLUSH PRIVILEGES;
Готово! Вы сделали это без остановки или перезапуска службы MySQL.
Если у вас есть 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/
Войдите в MySql из windows cmd, используя существующего пользователя:
mysql -u username -p
Введите пароль: ****
Затем выполните следующую команду:
mysql> SELECT * FROM mysql.user;
После этого скопируйте зашифрованный пароль md5 для соответствующего пользователя, и в Интернете появилось несколько приложений для расшифровки пароля. Используя этот расшифрованный пароль и используйте его для входа в следующий раз. или обновите пароль пользователя с помощью текущей команды:
mysql> UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';
Затем войдите, используя новый пароль и пользователя.
Если у вас настроен ODBC, вы можете получить пароль из файла конфигурации ODBC. Это в /etc/odbc.ini для Linux и в папке Software / ODBC в реестре в Windows (их несколько - может потребоваться некоторая охота)
Сохраните файл. В этом примере файл будет называться C: \ mysql-init.txt. он просит административные разрешения для сохранения файла
Хотя строгая, логическая, компьютерная science'ish интерпретация вопроса ора был бы требовать и «Как я могу получить мой MySQL имя пользователя» и «пароль» - я думал , что это может быть полезным для кого - то входит также или интерпретация. Другими словами ...
1) Как мне получить имя пользователя MySQL?
ИЛИ
2) пароль
Это последнее условие, по-видимому, уже достаточно проработано, поэтому я не буду его беспокоить. Ниже приведено решение только для случая «Как получить мое имя пользователя MySQL». Е.И.В..
Чтобы найти ваше имя пользователя mysql, выполните следующие команды из оболочки mysql ...
ВЫБЕРИТЕ пользователя ИЗ mysql.user;
Он напечатает таблицу всех пользователей MySQL.