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