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

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

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
163
0
617 927
10
Перейти к ответу Данный вопрос помечен как решенный

Ответы 10

Ответ принят как подходящий

Stop the MySQL process.

Start the MySQL process with the --skip-grant-tables option.

Start the MySQL console client with the -u root option.

Составьте список всех пользователей;

SELECT * FROM mysql.user;

Сброс пароля;

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

Но НЕ ЗАБУДЬТЕ к

Stop the MySQL process

Start the MySQL Process normally (i.e. without the --skip-grant-tables option)

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

Думаю, вам не нужно перезапускать демон для сброса настроек обычных пользователей. просто "СМЫВАТЬ ПРИВИЛЕГИИ;" после обновления пароля пользователя. --skip-grant-tables требуется только для сброса пароля пользователя root! Обычно это не рекомендуется для стандартного пользовательского сброса.

Amos Folarin 11.10.2013 14:41

Каково значение использования команды dpkg-reconfigure mysql-server-5.5 для сброса пароля root MySQL?

phillipsK 24.05.2015 07:38

@Xenph, почему ты говоришь "Запустите клиент консоли MySQL с параметром -u root"? В этом нет никакого смысла, поскольку -u игнорируется, когда сервер запускается с --skip-grant-tables.

Pacerier 22.04.2016 07:33

В MySQL 5.7. * В mysql.user нет столбца с именем password, используйте вместо него authentication_string.

Adib Aroui 25.07.2016 22:03

мой sql 5.5. команда select показывает зашифрованный пароль. как мне увидеть действительный пароль?

MasterJoe 22.09.2016 23:09

Я нашел этот + stackoverflow.com/a/35277160/1604601 очень полезным

Alien Life Form 03.12.2016 05:16

Я получаю Unknown column 'Password' in 'field list' после сброса пароля.

Timo 09.02.2019 16:25

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

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

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

Start Menu -> Control Panel -> Administrative Tools -> Services

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

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

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

    Каждый из операторов ОБНОВИТЬ и РУМЯНЕЦ должен быть записан в одной строке. Оператор ОБНОВИТЬ сбрасывает пароль для всех существующих учетных записей root, а оператор РУМЯНЕЦ сообщает серверу перезагрузить таблицы предоставления в память.

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

    Start Menu -> Run -> cmd

  4. Запустите сервер MySQL со специальной опцией --init-файл:

    C:\> C:\mysql\bin\mysqld-nt --init-file = C:\mysql-init.txt
    

    Если вы установили MySQL в расположение, отличное от C: \ mysql, настройте команду соответствующим образом.

    Сервер выполняет содержимое файла, названного параметром --init-файл, при запуске, изменяя пароль каждой учетной записи корень.

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

    Если вы установили MySQL с помощью мастера установки MySQL, вам может потребоваться указать параметр --defaults-файл:

    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-файл можно найти с помощью диспетчера служб:

    Start Menu -> Control Panel -> Administrative Tools -> Services

    Найдите службу MySQL в списке, щелкните ее правой кнопкой мыши и выберите параметр «Свойства». Поле «Путь к исполняемому файлу» содержит параметр --defaults-файл.

  5. После успешного запуска сервера удалите C: \ mysql-init.txt.
  6. Остановите сервер MySQL, затем снова перезапустите его в обычном режиме. Если вы запускаете сервер как службу, запустите его из окна служб Windows. Если вы запускаете сервер вручную, используйте любую команду, которую вы обычно используете.

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

@ Джейк - спасибо за ответ. Я хотел дать ему оценку, но по какой-то причине stackoverflow не позволяет мне это делать из-за очков репутации. ваше объяснение «к сожалению, ваш пароль пользователя невозможно восстановить. он был хеширован с помощью одностороннего хеша, который, если вы не знаете, является необратимым», было ключом к моему пониманию того, почему все остальное, что я читал в Google, ТОЛЬКО давало мне указания к изменять my пароль. хорошие объяснения более проницательны, чем одни инструкции.

dsdsdsdsd 26.09.2011 12:10

@jake я не могу найти mysql в списке служб Подскажите, пожалуйста, что делать?

user2098012 23.02.2013 15:02

Почему у вас mysqld-nt вместо mysqld?

Pacerier 22.04.2016 08:15

Кстати, есть ли у --init-file нефайловый вариант? (Что-то похожее на команду mysql.exe --execute.)

Pacerier 22.04.2016 08:26

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

1] No need to restart the mysql server
2] Security concern for a MySQL server connected to a network

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

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

The FLUSH statement tells the server to reload the grant tables into memory so that it notices the password change.

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

use --skip-grant-tables in conjunction with --skip-networking to prevent remote clients from connecting.

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

@ThinkingMonkey, Разве это не предполагает, что текущий вошедший в систему пользователь имеет права на изменение mysql.user? Однако зачастую это не так.

Pacerier 22.04.2016 08:16

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

mysql -u username -p
Enter password:****

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

mysql> SELECT * FROM mysql.user;

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

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

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

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

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

ИЛИ ЖЕ

2) пароль

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

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

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

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

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

m.cekiera 05.06.2015 02:08

Хотя вы не можете напрямую восстановить пароль 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;
}

Или вы можете проверить этот ПожертвованиеCoder thread для исходного + исполняемого файла быстрой и грязной реализации.

Это было прекрасно. В упомянутом потоке snemarch есть exe с исходным кодом для получения пароля моей учетной записи, хранящегося в моем хранилище MySQL Workbench. Хотя эти другие методы, вероятно, тоже работали бы, если бы у меня были права на чтение или обновление пользовательской таблицы.

RobbZ 27.11.2015 13:26

Но относительно говоря, очень мало людей используют Workbench.

Pacerier 22.04.2016 08:18

Вот еще одна реализация, которую можно запустить после сборки с помощью Visual Studio для восстановления сохраненных в Workbench информации об имени пользователя и пароле: github.com/wclear/MySQLWorkbenchPasswordViewer

bnp887 10.08.2016 22:48

Если у вас есть 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. он запрашивает административные разрешения для сохранения файла

Другие вопросы по теме