Estate atento porque en esta reseña encontrarás el hallazgo que buscas.Esta crónica ha sido evaluado por nuestros expertos para garantizar la calidad y exactitud de nuestro post.
Solución:
En MySQL 5.7, el password
campo en mysql.user
el campo de la tabla fue eliminado, ahora el nombre del campo es authentication_string
.
Primero elige la base de datos:
mysql> use mysql;
Y luego mostrar las tablas:
mysql> show tables;
Encontrarás el user
tabla, y ver sus campos:
mysql> describe user;
Te darás cuenta de que no hay ningún campo nombrado password
el campo de contraseña se llama authentication_string
. Entonces, solo haz esto:
update user set authentication_string=password('XXXX') where user='root';
Como sugiere @Rui F Ribeiro, alternativamente puedes ejecutar:
mysql> SET PASSWORD FOR 'root' = PASSWORD('new_password');
La forma MySQL de cambiar la contraseña es SET PASSWORD
SET PASSWORD FOR 'root' = PASSWORD('new_password');
consulte el Manual de referencia de MySQL 5.7 / … / SET PASSWORD Sintaxis
La declaración SET PASSWORD asigna una contraseña a una cuenta de usuario de MySQL, especificada como un valor de texto simple (sin cifrar) o cifrado:
'auth_string' represents a cleartext password. 'hash_string' represents an encrypted password.
La respuesta aceptada de Rahul muestra cómo actualizar la contraseña con DML
declaración.
update user set authentication_string=password('XXXX') where user='root';
Advertencia: esa no es la forma oficial y compatible. Puede causar problemas, si no sabes lo que estás haciendo. no olvides FLUSH PRIVILEGES
.
Para la mayoría de las operaciones, como crear un usuario, cambiar sus privilegios o cambiar su contraseña, querrá usar las declaraciones de alto nivel. No solo son más fáciles de usar y son compatibles con una mayor cantidad de versiones de MySQL, sino que también evitarán que cometas errores (por supuesto, recuerda configurar el modo sql “NO_AUTO_CREATE_USER“). Incluso suelen funcionar bien en un entorno hostil a MyISAM como un clúster de Galera.
Dejar de usar PRIVILEGIOS DE FLUSH
Por favor use GRANT
, REVOKE
, SET PASSWORD
o RENAME USER
y no instrucciones DML directas.
Actualización: la sintaxis SET PASSWORD … = PASSWORD(‘auth_string’) está en desuso a partir de MySQL 5.7.6 y se eliminará en una versión futura de MySQL.
Si para ti ha sido de ayuda nuestro post, agradeceríamos que lo compartas con otros desarrolladores de esta forma nos ayudas a difundir nuestra información.