Estoy tratando de cambiar la contraseña de root de MySql.
Lo que he hecho está abajo.
- Instale MySql-5.7.6 ~ .dmg (Community Server) y workbench.
- Apague el servidor en las preferencias del sistema OSX.
- Acceda a MySql con la consola. El comando fue
mysqld_safe --skip-grant
- Ejecutar
update user set password=password('1111') where user='root';
y recibí un mensaje de error ->ERROR 1054 (42S22): Unknown column 'password' in 'field list'
.
FYI, lo hice use mysql;
. Así que seleccioné la consulta en la tabla de usuario y encontré que la columna de contraseña en realidad no existe.
Es muy raro ¿Es posible que la tabla de usuario original no tenga una columna de contraseña?
¿Cómo puedo cambiar la contraseña, que no existe?
Gracias por tu respuesta: D
UPDATE mysql.user SET authentication_string= 'password' WHERE User = 'root';
Debido a que el campo 'Contraseña' fue eliminado por mysql y reemplazado por autenticación_cadena. Nota: que la función CONTRASEÑA de mysql ('contraseña') se basa en el algoritmo MD5 que fue descifrado hace mucho tiempo usando el ataque del día del nacimiento. Por lo tanto, usarlo da una falsa sensación de seguridad porque un atacante puede simplemente pegar los hash que produce en un sitio web público como hashkiller.co.uk/md5-decrypter.aspx y recuperar su contraseña de texto sin formato.Respuestas:
En MySQL 5.7, se eliminó el campo de contraseña en el campo de tabla mysql.user, ahora el nombre del campo es 'autenticación_cadena'.
Primero elija la base de datos:
Y luego muestra las tablas:
Encontrará la tabla de usuario, ahora veamos sus campos:
Sorpresa! No hay campo llamado 'contraseña', el campo contraseña se llama 'autenticación_cadena'. Entonces, solo haz esto:
Ahora todo estará bien.
En comparación con MySQL 5.6, los cambios son bastante amplios: Novedades en MySQL 5.7
fuente
use mysql;
update user set authentication_string=PASSWORD("") where User='root';
update user set plugin="mysql_native_password" where User='root'; # THIS LINE
flush privileges;
quit;
Este error ocurre si no configuró la contraseña en la instalación, en este caso, mysql utiliza el complemento de socket unix .
Pero si elimina el enlace del complemento de la configuración (tabla mysql.user) habrá otro problema. Esto no soluciona el problema y crea otro problema. Para arreglar el enlace eliminado y establecer la contraseña ("PWD"), haga lo siguiente:
1) Ejecutar con
--skip-grant-tables
lo dicho anteriormente.Si no funciona, agregue la cadena
skip-grant-tables
en la sección[mysqld]
de/etc/mysql/mysql.conf.d/mysqld.cnf
. Entonces hazlosudo service mysql restart
.2) Ejecutar
mysql -u root -p
, luego (cambiar "PWD"):entonces
sudo service mysql restart
. Comprobar:mysql -u root -p
.Antes de
restart
eliminar esa cadena del archivo mysqld.cnf, si la configuró allí.fuente
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '("MYNEWPASSWORD"), plugin="mysql_native_password"
Un escollo en el que caí es que no hay un campo de contraseña ahora, se le cambió el nombre así:
update user set password=PASSWORD("YOURPASSWORDHERE") where user='root';
Ahora debería ser:
update user set authentication_string=password('YOURPASSWORDHERE') where user='root';
fuente
Use el
ALTER USER
comando en lugar de intentar actualizar unaUSER
fila. Tenga en cuenta que puede haber más de un usuario 'root', porque las entidades de usuario también están calificadas por la máquina desde la que se conectanhttps://dev.mysql.com/doc/refman/5.7/en/alter-user.html
Por ejemplo.
fuente
Solo funcionó conmigo cuando me sonrojé después de los comandos mencionados aquí. Aquí está la lista completa de comandos que utilicé:
Las respuestas anteriores podrían no funcionar para versiones posteriores de mysql. Pruebe estos pasos si las respuestas anteriores no le funcionaron:
1- Haz clic en el icono de wamp> mysql> consola mysql
2- escribe los siguientes comandos, uno por uno
fuente
Gracias por tu ayuda. En caso de que las personas sigan teniendo problemas, intente esto.
Para MySQL versión 5.6 y menos
¿Has olvidado tu contraseña de "ROOT" de Mac OS X y necesitas restablecerla? Siga estos 4 simples pasos:
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
sudo /usr/local/mysql/bin/mysql -u root UPDATE mysql.user SET Password=PASSWORD('NewPassword') WHERE User='root'; FLUSH PRIVILEGES; \q
Para MySQL versión 5.7 y superior
'System Prefrences' > MySQL > 'Stop MySQL Server'
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
sudo /usr/local/mysql/bin/mysql -u root UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword') WHERE User='root'; FLUSH PRIVILEGES; \q
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, rooteo en 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
Causa raíz: la raíz no tiene contraseña, y su declaración de conexión de Python debería reflejar eso.
Para resolver el error 1698, cambie su contraseña de conexión de Python a ''.
nota: actualizar manualmente la contraseña del usuario no resolverá el problema, aún obtendrá el error 1698
fuente
recuerda que la contraseña debe configurarse aún más después de reiniciar mysql como se muestra a continuación
fuente