Estoy intentando actualizar la contraseña de un usuario de la base de datos mediante la línea de comandos y no me funciona. Este es el código que estoy usando:
mysql> UPDATE user SET password=PASSWORD($w0rdf1sh) WHERE user='tate256';
¿Alguien podría decirme qué está mal con este código?
mysql
command-line
putty
usuario3310572
fuente
fuente
Respuestas:
En su código, intente incluir la contraseña entre comillas simples. Alternativamente, según la documentación de mysql, lo siguiente debería funcionar:
SET PASSWORD FOR 'jeffrey'@'localhost' = PASSWORD('cleartext password'); FLUSH PRIVILEGES;
La última línea es importante o, de lo contrario, el cambio de contraseña no tendrá efecto, lamentablemente.
EDITAR:
Hice una prueba en mi local y funcionó.
mysql> set password for 'test' = PASSWORD('$w0rdf1sh'); Query OK, 0 rows affected (0.00 sec)
La mía es la versión 5. Puede usar el siguiente comando para determinar su versión:
SHOW VARIABLES LIKE "%version%";
fuente
5.7.18-0ubuntu0.16.04.1
A partir de MySQL 5.7.6, utilice
ALTER USER
Ejemplo:
ALTER USER 'username' IDENTIFIED BY 'password';
Porque:
SET PASSWORD ... = PASSWORD('auth_string')
La sintaxis está obsoleta a partir de MySQL 5.7.6 y se eliminará en una versión futura de MySQL.SET PASSWORD ... = 'auth_string'
La sintaxis no está obsoleta, peroALTER USER
ahora es la declaración preferida para asignar contraseñas.fuente
ALTER USER ... IDENTIFIED BY ...
exactamente? ¿en qué se diferencia deUPDATE ... SET ...
oINSERT INTO ...
?ALTER USER ... IDENTIFIED BY ...
es una declaración SQL que configura los permisos de usuario para su base de datos.UPDATE
yINSERT
tienen diferentes funcionalidades, que como los nombres sugieren, actualizan registros e insertan registros en tablas en su base de datos.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
Nota: debe iniciar sesión como usuario root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your password');
fuente
esta es la respuesta actualizada para WAMP v3.0.6
UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPass') WHERE user='root'; FLUSH PRIVILEGES;
fuente
Antes de MySQL 5.7.6, esto funciona desde la línea de comandos:
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$w0rdf1sh');"
No tengo una instalación de mysql para probar, pero creo que en su caso sería
mysql -e "UPDATE mysql.user SET Password=PASSWORD('$w0rdf1sh') WHERE User='tate256';"
fuente
En Windows 10, simplemente salga del inicio de sesión actual y ejecútelo en la línea de comando
->
mysqladmin -u root password “newpassword”
donde en lugar de root podría ser cualquier usuario.
fuente
Esto funciona para mi. Tengo una solución de página web MYSQL
En MySQL, ejecute las siguientes consultas:
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'New_Password';
fuente
A partir de MySQL 8.0.18 Esto funciona bien para mí
mysql> SET PASSWORD FOR 'user'@'localhost' = 'userpassword';
fuente
Su raíz de inicio de sesión debería ser
/usr/local/directadmin/conf/mysql.conf
. Entonces intenta seguirUPDATE mysql.user SET password=PASSWORD('$w0rdf1sh') WHERE user='tate256' AND Host='10.10.2.30'; FLUSH PRIVILEGES;
El host es su host mysql.
fuente