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

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

157 mysql
7.08.2008 03:54:14
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)

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

186
7.08.2008 05:29:18
Думаю, вам не нужно перезапускать демон для сброса обычных пользователей. просто "FLUSH PRIVILEGES"; после обновления пароля пользователя. --skip-grant-tables требуется только для сброса пароля пользователя root! Это обычно не рекомендуется для стандартного сброса пользователя.
Amos Folarin 11.10.2013 10:41:15
Каково значение использования dpkg-reconfigure mysql-server-5.5команды для сброса корневого пароля MySQL?
phillipsK 24.05.2015 04:38:42
@Xenph, почему вы говорите " Запустите консольный клиент MySQL с опцией -u root "? В этом нет никакого смысла, так как -uпри запуске сервера он игнорируется --skip-grant-tables.
Pacerier 22.04.2016 04:33:56
В MySQL 5.7. * В mysql.userвызываемом столбце нет password, используйте authentication_stringвместо этого.
Adib Aroui 25.07.2016 19:03:08
Я нашел это + stackoverflow.com/a/35277160/1604601 очень полезным
Alien Life Form 3.12.2016 02:16:19

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

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

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

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

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

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

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

    В UPDATE и FLUSH заявления каждый должен быть написан на одной строке. Оператор UPDATE сбрасывает пароль для всех существующих корневых учетных записей, а оператор 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 Services. Если вы запускаете сервер вручную, используйте любую команду, которую вы обычно используете.

Теперь вы сможете подключиться к MySQL с правами суперпользователя, используя новый пароль.

42
16.01.2015 12:19:05
@ Джейк - спасибо за ответ. Я хотел поблагодарить его, но по какой-то причине стекопоток не позволил мне сделать это из-за репутации. Ваше объяснение «к сожалению, ваш пароль пользователя необратим. Он был хеширован односторонним хешем, который, если вы не знаете, необратим», был ключом к моему пониманию, почему все остальное, что я прочитал только в Google, дало мне указания изменить мой пароль. хорошие объяснения более проницательны, чем одни инструкции.
dsdsdsdsd 26.09.2011 08:10:30
@ jake я не могу найти mysql в списке сервисов подскажите пожалуйста что делать?
user2098012 23.02.2013 11:02:25
Почему твой mysqld-ntвместо mysqld?
Pacerier 22.04.2016 05:15:04
Кстати, есть ли не файловая опция --init-file? (Что-то похожее на команду mysql.exe --execute.)
Pacerier 22.04.2016 05:26:06

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

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

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

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

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

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

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

from: reference: сброс-разрешения-универсальный

34
9.01.2012 17:14:58
@ThinkingMonkey, разве это не предполагает, что у текущего вошедшего в систему пользователя есть права на изменение mysql.user? Однако часто это не так.
Pacerier 22.04.2016 05:16:46

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

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

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

mysql> SELECT * FROM mysql.user;

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

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

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

3
7.02.2016 14:35:30

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

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

ИЛИ

2) пароль

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

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

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

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

-1
4.06.2015 22:49:04
Это поздний ответ, и вы должны публиковать его только в том случае, если ваше решение явно отличается от уже опубликованного или принятого. Дело не в этом, особенно в том, что ваш ответ дублирует принятый.
m.cekiera 4.06.2015 23:08:24

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

6
7.02.2016 14:35:10
Это было прекрасно. Существует файл с исходным кодом в упомянутом потоке snemarch для получения пароля моей учетной записи пользователя, хранящегося в моем хранилище MySQL Workbench. Хотя эти другие методы, вероятно, сработали бы, если бы у меня были права на чтение или обновление пользовательской таблицы.
RobbZ 27.11.2015 10:26:15
Но, условно говоря, очень мало людей используют Workbench.
Pacerier 22.04.2016 05:18:06
Вот еще одна реализация, которую можно запустить после сборки с помощью Visual Studio для восстановления сохраненной в Workbench информации об имени пользователя и пароле: github.com/wclear/MySQLWorkbenchPasswordViewer
bnp887 10.08.2016 19:48:38

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

4
22.01.2016 11:36:35

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

0
30.10.2017 15:04:51

Сделать это без простоя

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

sudo mysql -u root -p;

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

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

на этом этапе вам необходимо выполнить сброс, чтобы применить изменения:

FLUSH PRIVILEGES;

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

4
10.03.2018 10:00:15

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

0
23.10.2019 05:19:31