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

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

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

"C:Program FilesMySQLMySQL Server 5.6binmysqld" --defaults-file="C:ProgramDataMySQLMySQL Server 5.6my.ini" --init-file=C:MySQL-miscmysql-init.txt

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

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

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

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

обновление

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

перезапустил Windows, и служба автоматически запустилась. The новая root password Кажется, работает. Я успешно смог использовать различные функции верстака, которые требуют пароля.

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

7 ответов


На 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';

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

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


На Mac:

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

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

1) пропустить таблицу грантов

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

как только он работает, не закрывайте его и откройте новый окно терминала

2) Перейдите в MySQL terminal

/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) run FLUSH PRIVILEGES;

5) run \q бросить

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

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

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

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

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

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

вот именно!!


вопрос разрешить.

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

процесс не пошел ровно как описано (и это было причиной моего первоначального поста) , но он все же работал (см. обновление в моем посте).


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


в случае если у вас установлен XAMPP.

  1. Goto C:\xampp\mysql\bin
  2. открыть мой.ini-файл
  3. поставить skip-grant-tables под [mysqld]
  4. Goto Windows services и остановить службу mysql
  5. вызвать эту команду из командной строки C:\xampp\mysql\bin\mysql
  6. теперь сбросьте пароль root с запросом MySQL update mysql.user set password=PASSWORD('root') where user='root';
  7. выйти из командной строки.
  8. перезапустите службу mysql windows, которая была отключена в шаге 4.
  9. теперь вы сможете войти в MySQL, используя пароль пользователя root.

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

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

сначала остановите сервер mysql и выполните следующие действия:

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

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

  • mysqld.exe --skip-grant-tables

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

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

выполнить запрос ниже изменить пароль корня mysql

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

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