Я пытаюсь обновить пароль для пользователя базы данных с помощью командной строки, и у меня это не работает. Это код, который я использую:
mysql> UPDATE user SET password=PASSWORD($w0rdf1sh) WHERE user='tate256';
Может кто-нибудь сказать мне, что не так с этим кодом.
mysql
command-line
putty
user3310572
источник
источник
Ответы:
В своем коде попробуйте заключить пароль в одинарные кавычки. В качестве альтернативы, согласно документации 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%";
источник
5.7.18-0ubuntu0.16.04.1
Начиная с MySQL 5.7.6, используйте
ALTER USER
Пример:
ALTER USER 'username' IDENTIFIED BY 'password';
Потому как:
SET PASSWORD ... = PASSWORD('auth_string')
синтаксис устарел в MySQL 5.7.6 и будет удален в будущем выпуске MySQL.SET PASSWORD ... = 'auth_string'
синтаксис не является устаревшим, ноALTER USER
теперь является предпочтительным оператором для назначения паролей.источник
ALTER USER ... IDENTIFIED BY ...
? чем это отличается отUPDATE ... SET ...
илиINSERT INTO ...
?ALTER USER ... IDENTIFIED BY ...
- это оператор SQL, который настраивает разрешения пользователей для вашей базы данных.UPDATE
иINSERT
имеют разные функции, которые, как и предполагают названия, обновляют записи и вставляют записи в таблицы в вашей базе данных.ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'USER 'root' IDENTIFIED BY
Примечание: вы должны войти в систему как пользователь 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 мог быть любой пользователь.
источник
У меня это работает. Получил решение с веб-страницы MYSQL
В MySQL выполните следующие запросы:
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'New_Password';
источник
Начиная с MySQL 8.0.18 Это отлично работает для меня
mysql> SET PASSWORD FOR 'user'@'localhost' = 'userpassword';
источник
Ваш корень входа в систему должен быть
/usr/local/directadmin/conf/mysql.conf
. Тогда попробуйте следоватьUPDATE mysql.user SET password=PASSWORD('$w0rdf1sh') WHERE user='tate256' AND Host='10.10.2.30'; FLUSH PRIVILEGES;
Хост - это ваш хост mysql.
источник