Сброс пароля ROOT в MySQL 5.6

Я выполнял эти инструкции для сброса пароля root для локальной установки MySQL 5.6 на ноутбуке Windows 7.

Я остановил службу, создал init файл и выполнил следующую команду (в качестве администратора):

"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.6\my.ini" --init-file=C:\\MySQL-misc\\mysql-init.txt

Я получил следующее предупреждение:

2014-02-08 15:44:10 0 [Warning] TIMESTAMP с неявным значением DEFAULT не рекомендуется. Используйте сервер --explicit_defaults_for_timestamp. (подробнее см. документацию).

Так как это предупреждение, я не уверен, что мне нужно что-то исправить, а затем снова повторить процесс.

В настоящее время окно командной строки все еще включено и не принимает никаких данных. Должен ли я принудительно закрыть его или что-нибудь, что я могу сделать, чтобы закончить процесс изящно?

UPDATE

Я убил окно Command и попытался перезапустить службу. Получил ошибку.

Перезагруженные Windows и служба автоматически запустились. Новый root password, похоже, работает. Я успешно использовал различные функции Workbench, которые требуют пароль.

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

Ответ 1

Проблема была решена.

Как указано в моем вопросе, я последовал за инструкциями из руководства MySQL.

Процесс прошел не так, как описано (и это стало причиной моего первоначального сообщения), но он все же работал (см. раздел UPDATE в моем сообщении).

Ответ 2

В Windows:

0) отключить услугу mysql56

1) перейдите к C:\ProgramData\MySQL\MySQL Server 5.6, обратите внимание, что ProgramData является скрытой папкой

2), ища файл my.ini, откройте его и добавьте одну строку skip-grant-tables ниже [mysqld], сохраните

[mysqld]

skip-grant-tables

3) начать сервис mysql56

4) по праву вы можете получить доступ к базе данных, запустите mysql

5) и воспользуйтесь приведенным ниже запросом, чтобы обновить пароль

update mysql.user set password=PASSWORD('NEW PASSWORD') where user='root';

note: для более новой версии используйте authentication_string вместо password

6) снова выключите службу, удалите строку skip-grant-tables сохраните ее и снова запустите службу. попробуйте использовать пароль, который вы установили для входа.


На Mac:

0) остановить службу

sudo /usr/local/mysql/support-files/mysql.server stop

1) skip grant table

sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables

после его запуска, не закрывайте его и не открывайте новое окно терминала

2) перейдите в терминал mysql

/usr/local/mysql/bin/mysql -u root

3) обновить пароль

UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

для более новой версии, например 5.7, используйте

UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';

4) запустите FLUSH PRIVILEGES;

5) запустите \q, чтобы выйти из

6) запустите сервер mysql

sudo /usr/local/mysql/support-files/mysql.server start

Ответ 3

  • Остановите службу Mysql, перейдя в "Администрирование" > "Службы"
  • Открыть Пуск > Выполнить > cmd (Запуск от имени администратора)
  • Запустите сервер вручную, используя следующую строку:

    mysqld -P3306 --skip-grant-tables
    
  • В новом cmd (Запуск от имени администратора) выполните:

    mysql -P3306 mysql
    
  • Выполните следующий запрос в клиенте mysql:

    update mysql.user set authentication_string=password('new_password') where user='root';
    

Что это!

Ответ 4

Обновление этого ответа относительно изменений в MySQL 5.7:

0) отключить услугу mysql57

1) перейдите к C:\ProgramData\MySQL\MySQL Server 5.7, обратите внимание, что ProgramData является скрытой папкой

2), ища файл my.ini, откройте его и добавьте одну строку skip-grant-tables ниже [mysqld], сохраните

[mysqld]

skip-grant-tables

3) начать сервис mysql57

4) по праву вы можете получить доступ к базе данных, запустите mysql

5) и воспользуйтесь приведенным ниже запросом, чтобы обновить пароль

update mysql.user set authentication_string=password('NEW_PASSWORD') where user='root';

6) снова выключите службу, удалите строку skip-grant-tables сохраните ее и снова запустите службу. попробуйте использовать пароль, который вы установили для входа.

Ответ 5

Если у вас установлен Xampp.

  • Перейти к C:\xampp\mysql\bin
  • Откройте файл my.ini
  • Поместите skip-grant-tables под [mysqld]
  • Перейти к службам Windows и остановке службы mysql
  • Запустите эту команду из командной строки C:\xampp\mysql\bin\mysql
  • Теперь reset пароль root с запросом MySQL update mysql.user set password=PASSWORD('root') where user='root';
  • Выйдите из командной строки.
  • Перезапустите службу окон mysql, которая была отключена на шаге 4.
  • Теперь вы сможете войти в mysql, используя пароль как root.

Ответ 6

Для MySQL 5.6 для Windows мне пришлось запустить этот оператор, чтобы он работал.

UPDATE mysql.user
SET Password=PASSWORD('NEW PASSWORD'), 
authentication_String=PASSWORD('NEW PASSWORD')
WHERE User='root';

Ответ 7

Сначала остановите сервер MySQL и выполните следующие шаги:

Перейдите в каталог bin mysql на cmd i, e. cd C:\ProgramData\MySQL\MySQL Server 5.6\bin (это скрытый каталог)

пропустить таблицы грантов позволит вам войти в MySQL

  • mysqld.exe --skip-grant-tables

Откройте новую командную строку или в той же командной строке

  • mysql.exe -uroot -p (без пароля вы можете войти в mysql)

Запустите ниже запрос, чтобы изменить пароль root MySQL

  • UPDATE mysql.user set password=password('root password') WHERE user='root';
  • flush privileges

Вот и все, перезапустите MySQL и хорошо идти с новым паролем.. !!

Ответ 8

Без редактирования mi.ini:

service mysql stop
mysqld_safe --skip-grant-tables

на отдельной сессии SSH:

update mysql.user set password=PASSWORD('NEW PASSWORD') where user='root';

не нужно сбрасывать привилегии, просто перезагрузите сервер

Ответ 9

Работает!


Обновление этого ответа относительно изменений в MySQL 5.7:

0) закрыл службу mysql57

1) перейдите в C:\ProgramData\MySQL\MySQL Server 5.7, обратите внимание, что ProgramData является скрытой папкой

2) ищем файл my.ini, открываем его и добавляем одну строку skip-grant-tables ниже [mysqld], сохраняем

[ТуздЫ]

skip-grant-tables 3) запустить службу mysql57

4) по праву вы можете получить доступ к базе данных, запустить mysql

5) и используйте запрос ниже, чтобы обновить пароль

обновить mysql.user set authentication_string = пароль ('NEW_PASSWORD'), где user = 'root';

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