Как получить имя пользователя и пароль MySQL?
Я потерял имя пользователя и пароль MySQL. Как мне его вернуть?
9 ответов
остановите процесс MySQL.
запустите процесс MySQL с параметром --skip-grant-tables.
запустите клиент консоли MySQL с опцией-u root.
Список всех пользователей;
SELECT * FROM mysql.user;
сброс пароля;
UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';
но НЕ ЗАБЫВАЙТЕ to
остановить процесс MySQL
запустите процесс MySQL нормально (т. е. без -- опция пропустить-грант-таблицы)
когда вы закончите. В противном случае безопасность вашей базы данных может быть нарушена.
к сожалению Ваш пароль является невозвратной. Он был хэширован с односторонним хэшем, который, если вы не знаете, необратим. Я рекомендую пойти с Xenph Yan выше и просто создать новый.
вы также можете использовать следующую процедуру из руководство для сброса пароля для любого MySQL root учетные записи в Windows:
- войдите в систему как администратор.
- остановите сервер MySQL, если это бегущий. Для сервера, работающего как служба Windows, перейдите к менеджер услуг:
Меню Пуск -> Панель Управления -> Администрирование -> Службы
затем найдите службу MySQL в списке и остановите ее. Если ваш сервер не работает как Служба, вам может потребоваться использовать Диспетчер задач, чтобы заставить его остановиться.
-
создайте текстовый файл и поместите в него следующие инструкции. Заменить пароль с паролем, который вы хотите использовать.
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; FLUSH PRIVILEGES;
на обновление и флеш операторы каждый должен быть написан на одной строке. The обновление оператор сбрасывает пароль для всех существующих учетных записей root и флеш оператор сообщает серверу перезагрузить таблицы грантов в память.
- сохраните файл. В этом примере файл будет называться C:\mysql-init.формат txt.
-
откройте окно консоли, чтобы перейти в командную строку:
меню Пуск -> Выполнить> 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 настройка.
- после успешного запуска сервера удалите C:\mysql-init.txt.
- остановите сервер MySQL, затем перезапустите его в обычном режиме. Если сервер запускается как служба, запустите его из окна службы Windows. При запуске сервера вручную используйте любую команду, которую обычно используете.
Теперь вы должны иметь возможность подключиться к MySQL как root, используя новый пароль.
улучшение к самому полезному ответу здесь:
1] нет необходимости перезапускать сервер mysql
2] Проблема безопасности для сервера MySQL, подключенного к сети
нет необходимости перезапускать сервер MySQL.
использовать FLUSH PRIVILEGES;
после обновления mysql.инструкция пользователя для смены пароля.
оператор FLUSH сообщает серверу перезагрузить таблицы предоставления в память, чтобы он заметил изменение пароля.
на --skip-grant-options
позволяет любому подключиться без пароля и со всеми привилегиями. Поскольку это небезопасно, вы можете захотеть
использовать --skip-grant-tables в сочетании с --skip-networking для предотвращения подключения удаленных клиентов.
from: reference:сброс-разрешения-generic
хотя вы не можете напрямую восстановить пароль MySQL без bruteforcing, может быть другой способ - если вы использовали MySQL Workbench для подключения к базе данных и сохранили учетные данные в "хранилище", вы Золотой.
в Windows учетные данные хранятся в %APPDATA%\MySQL\Workbench\workbench_user_data.dat - зашифровано с помощью CryptProtectData (без дополнительной энтропии). Расшифровка проста:
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 для источника + исполняемого файла быстрой и грязной реализации.
Если у вас есть корневой доступ к серверу, где 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]';
затем войдите в систему, используя новый пароль и пользователя.
хотя строгая, логическая, компьютерная интерпретация вопроса op будет требовать и "Как получить мое имя пользователя MySQL"и "пароль" - я думал, что это может быть полезно кому-то также обратиться к или интерпретация. Другими словами ...
1) Как получить мое имя пользователя MySQL?
или
2) пароль
Это последнее условие кажется к нему уже достаточно обращались, так что я не буду утруждать себя. Ниже приведено решение для случая" как мне восстановить мое имя пользователя MySQL " в одиночку. Взысканное.
чтобы найти имя пользователя mysql, выполните следующие команды из оболочки mysql ...
выберите пользователя из mysql.пользователь;
он напечатает таблицу всех пользователей mysql.
Если у вас есть настройка ODBC, вы можете получить пароль из файла конфигурации ODBC. Это в /etc / odbc.ini для Linux и в папке Software / ODBC в реестре в Windows (их несколько - может потребоваться некоторая охота)