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