Как мне получить мое имя пользователя и пароль MySQL?

Я потерял имя пользователя и пароль MySQL. Как мне его получить?

Ответов (10)

Решение

Остановите процесс 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)

когда вы закончите. В противном случае безопасность вашей базы данных может быть поставлена ​​под угрозу.

Улучшение самого полезного ответа здесь:

1] Нет необходимости перезапускать сервер mysql
2] Проблема безопасности для сервера MySQL, подключенного к сети

Нет необходимости перезапускать сервер MySQL.

используйте FLUSH PRIVILEGES; команду mysql.user после обновления для смены пароля.

Оператор FLUSH сообщает серверу перезагрузить таблицы предоставления в память, чтобы он заметил изменение пароля.

Это --skip-grant-options позволяет любому подключиться без пароля и со всеми привилегиями. Поскольку это небезопасно, вы можете захотеть

используйте --skip-grant-tables вместе с --skip-network для предотвращения подключения удаленных клиентов.

от: ссылка: сброс-разрешений-общий

Войдите в MySql из Windows cmd, используя существующего пользователя:

mysql -u имя пользователя -p
Введите пароль: ****

Затем выполните следующую команду:

mysql> SELECT * FROM mysql.user;

После этого скопируйте зашифрованный пароль md5 для соответствующего пользователя, и в сети будет доступно несколько онлайн-приложений с расшифровкой паролей. Используя этот пароль для расшифровки и используйте его для входа в следующий раз. или обновите пароль пользователя, используя текущую команду:

mysql> UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';

Затем войдите, используя новый пароль и пользователя.

Хотя вы не можете напрямую восстановить пароль MySQL без перебора, может быть и другой способ - если вы использовали 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 для исходного + исполняемого файла быстрой и грязной реализации.

Если у вас есть 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/

Если у вас установлен ODBC, вы можете получить пароль из файла конфигурации ODBC. Это находится в /etc/odbc.ini для Linux и в папке Software / ODBC в реестре Windows (их несколько - может потребоваться некоторая охота)

Сделайте это без простоев

Для подключения к СУБД выполните следующую команду в Терминале (необходим root-доступ):

sudo mysql -u root -p;

запустите обновление пароля целевого пользователя (для моего примера имя пользователя mousavi и его пароль должен быть 123456 ):

UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE user='mousavi';  

на этом этапе вам нужно выполнить промывку, чтобы применить изменения:

FLUSH PRIVILEGES;

Выполнено! Вы сделали это без остановки или перезапуска службы mysql.

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

К сожалению, ваш пароль пользователя невозможно восстановить. Он был хеширован односторонним хешем, который, если вы не знаете, необратим. Я рекомендую пойти с Xenph Yan, указанным выше, и просто создать новый.

Вы также можете использовать следующую процедуру из руководства для сброса пароля для любых учетных записей root MySQL в Windows:

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

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

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

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

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

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

  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, используя новый пароль.

Хотя строгая, логическая, информативная интерпретация вопроса оператора потребовала бы как «Как мне получить мое имя пользователя MySQL», так и «пароль» - я подумал, что кому-то может быть полезно также обратиться к интерпретации ИЛИ . Другими словами ...

1) Как мне получить свое имя пользователя MySQL?

ИЛИ

2) пароль

Это последнее условие, кажется, уже достаточно рассмотрено, поэтому я не буду беспокоиться о нем. Ниже приведено решение только для случая «Как восстановить мое имя пользователя MySQL». ПРИВЕТ.

Чтобы найти свое имя пользователя mysql, выполните следующие команды из оболочки mysql ...

ВЫБРАТЬ пользователя ИЗ mysql.user;

он распечатает таблицу всех пользователей mysql.