Я пытаюсь обновить пароль для пользователя базы данных с помощью командной строки, и он не работает для меня. Это код, который я использую:
mysql> UPDATE user SET password=PASSWORD($w0rdf1sh) WHERE user='tate256';
Может кто-нибудь сказать мне, что не так с этим кодом.
В своем коде попробуйте заключить пароль в одинарную кавычку. Кроме того, согласно документации MySQL, должно работать следующее -
SET PASSWORD FOR 'jeffrey'@'localhost' = PASSWORD('cleartext password');
FLUSH PRIVILEGES;
Последняя строка важна, иначе смена пароля, к сожалению, не вступит в силу.
Правка:
Я провел тест в моем регионе, и это сработало -
mysql> set password for 'test' = PASSWORD('$w0rdf1sh');
Query OK, 0 rows affected (0.00 sec)
Моя версия 5. Вы можете использовать следующую команду, чтобы определить свою версию -
SHOW VARIABLES LIKE "%version%";
ALTER USER
Пример:
ALTER USER 'username' IDENTIFIED BY 'password';
Так как:
Синтаксис SET PASSWORD ... = PASSWORD('auth_string')
устарел с MySQL 5.7.6 и будет удален в будущем выпуске MySQL.
Синтаксис SET PASSWORD ... = 'auth_string'
не считается устаревшим, но ALTER USER
теперь является предпочтительным оператором для назначения паролей.
Примечание: вы должны войти в систему как пользователь root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your password');
это обновленный ответ для WAMP v3.0.6
UPDATE mysql.user
SET authentication_string=PASSWORD('MyNewPass')
WHERE user='root';
FLUSH PRIVILEGES;
До MySQL 5.7.6 это работает из командной строки:
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$w0rdf1sh');"
У меня нет установки mysql для тестирования, но я думаю, что в вашем случае это будет
mysql -e "UPDATE mysql.user SET Password=PASSWORD('$w0rdf1sh') WHERE User='tate256';"
В Windows 10 просто выйдите из текущего логина и запустите его в командной строке
-> mysqladmin -u root password “newpassword”
где вместо root может быть любой пользователь.