Как получить имя пользователя и пароль 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:

  1. войдите в систему как администратор.
  2. остановите сервер MySQL, если это бегущий. Для сервера, работающего как служба Windows, перейдите к менеджер услуг:

Меню Пуск -> Панель Управления -> Администрирование -> Службы

затем найдите службу MySQL в списке и остановите ее. Если ваш сервер не работает как Служба, вам может потребоваться использовать Диспетчер задач, чтобы заставить его остановиться.

  1. создайте текстовый файл и поместите в него следующие инструкции. Заменить пароль с паролем, который вы хотите использовать.

    UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
    FLUSH PRIVILEGES;
    

    на обновление и флеш операторы каждый должен быть написан на одной строке. The обновление оператор сбрасывает пароль для всех существующих учетных записей root и флеш оператор сообщает серверу перезагрузить таблицы грантов в память.

  2. сохраните файл. В этом примере файл будет называться C:\mysql-init.формат txt.
  3. откройте окно консоли, чтобы перейти в командную строку:

    меню Пуск -> Выполнить> cmd

  4. запустите сервер 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 настройка.

  5. после успешного запуска сервера удалите C:\mysql-init.txt.
  6. остановите сервер 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 (их несколько - может потребоваться некоторая охота)