Entorno actual:
mysql> show variables like "%version%";
+-------------------------+------------------------------+
| Variable_name | Value |
+-------------------------+------------------------------+
| innodb_version | 5.7.13 |
| protocol_version | 10 |
| slave_type_conversions | |
| tls_version | TLSv1,TLSv1.1 |
| version | 5.7.13 |
| version_comment | MySQL Community Server (GPL) |
| version_compile_machine | x86_64 |
| version_compile_os | Linux |
+-------------------------+------------------------------+
8 rows in set (0.01 sec)
Usuario de comando de cambio de contraseña:
mysql> update user set password=PASSWORD("XXXX") where user="root";
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
¿Me estoy perdiendo de algo?
mysql
en modo seguro. entonces puede cambiar la contraseña de rootRespuestas:
En MySQL 5.7, se eliminó el
password
campo en el campo demysql.user
tabla, ahora el nombre del campo esauthentication_string
.Primero elija la base de datos:
Y luego muestra las tablas:
Encontrará la
user
tabla y verá sus campos:Te darás cuenta de que no hay un campo llamado
password
, el campo de la contraseña se llamaauthentication_string
. Entonces, solo haz esto:Según lo sugerido por @Rui F Ribeiro, alternativamente puede ejecutar:
fuente
SET PASSWORD FOR 'root' = PASSWORD('new_password');
La forma de cambiar la contraseña de MySQL es
SET PASSWORD
consulte el Manual de referencia de MySQL 5.7 / ... / SET PASSWORD Syntax
La respuesta aceptada de Rahul muestra cómo actualizar la contraseña con una
DML
declaración.Advertencia: esa no es la forma oficial y admitida. Puede causar problemas si no sabe lo que está haciendo. No se olvide
FLUSH PRIVILEGES
.Dejar de usar PRIVILEGIOS FLUSH
Por favor, uso
GRANT
,REVOKE
,SET PASSWORD
, oRENAME USER
y no declaraciones DML directos.Actualización: SET PASSWORD ... = La sintaxis PASSWORD ('auth_string') está en desuso a partir de MySQL 5.7.6 y se eliminará en una futura versión de MySQL.
fuente
mysqladmin -u user-name password -p "oldpassword" "newpass"
si puede iniciar sesión, intente esto
""
no funcionará intente con''
comillas simplesupdate user set password=PASSWORD("newpass") where User='ENTER-USER-NAME-HERE';
fuente
authentication_string
En mi caso
Entonces, creo que su comando de actualización es correcto, pero necesita reiniciar su servidor mysql.
fuente
Para este problema, utilicé un método simple y grosero, cambie el nombre del campo a contraseña, la razón de esto es que utilizo el software mac navicat premium en el error de operación visual: columna desconocida 'contraseña' en 'lista de campos', el el software en sí usa contraseña para que no pueda operar fácilmente. Por lo tanto, me dirijo a la línea de comando de la base de datos, ejecuto
Y luego modifique el nombre del campo:
Después de todo lo normal.
fuente