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

голоса
128

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

Задан 07/08/2008 в 04:54
источник пользователем
На других языках...                            


9 ответов

голоса
165

Остановить процесс MySQL.

Запуск процесса MySQL с опцией --skip-грант-таблиц.

Запустите консоль клиента MySQL с опцией -u корня.

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

SELECT * FROM mysql.user;

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

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

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

Остановить процесс MySQL

Запуск процесса MySQL нормально (т.е. без опции --skip-грант-таблиц)

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

Ответил 07/08/2008 в 05:02
источник пользователем

голоса
35

К сожалению, ваш пароль пользователя невосполнима. Он хешированы с односторонним хэш, который, если вы не знаете, является необратимым. Я рекомендую идти с 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-файл опцией:

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

    Если вы установили MySQL в другом месте , кроме C: \ MySQL , настроить команду соответствующим образом .

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

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

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

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

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

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

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

Ответил 07/08/2008 в 05:54
источник пользователем

голоса
32

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

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

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

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

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

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

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

от: справок: Сброс разрешения_доступ-родовой

Ответил 10/11/2011 в 11:47
источник пользователем

голоса
6

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

Ответил 03/11/2015 в 18:47
источник пользователем

голоса
3

Если у вас есть корневой доступ к серверу, где 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/

Ответил 22/01/2016 в 11:36
источник пользователем

голоса
1

Вход MySql из окна CMD с помощью существующего пользователя:

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

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

mysql> SELECT * FROM mysql.user;

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

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

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

Ответил 02/12/2014 в 08:25
источник пользователем

голоса
0

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

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

sudo mysql -u root -p;

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

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

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

FLUSH PRIVILEGES;

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

Ответил 10/03/2018 в 10:00
источник пользователем

голоса
0

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

Ответил 30/10/2017 в 15:04
источник пользователем

голоса
0

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

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

ИЛИ

2) пароль

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

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

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

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

Ответил 04/06/2015 в 22:49
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more