usuario password mac contraseña change cambiar asignar mysql macos passwords root

mac - reset root password mysql 5.7 windows



La base de datos de usuario de MySQL no tiene columnas de contraseña: instalación de MySQL en OSX (9)

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 recibirá el error 1698

Estoy tratando de cambiar la contraseña de root de MySql.

Lo que he hecho está abajo.

  1. Instale MySql-5.7.6 ~ .dmg (Community Server) y workbench.
  2. Apague el servidor en las preferencias del sistema OSX.
  3. Acceda a MySql con la consola. El comando era mysqld_safe --skip-grant
  4. Ejecute la 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, usé 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


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:

mysql>use mysql;

Y luego muestra las tablas:

mysql>show tables;

Encontrará la tabla de usuario, ahora veamos sus campos:

mysql> describe user; +------------------------+-----------------------------------+------+-----+-----------------------+-------+ | Field | Type | Null | Key | Default | Extra | +------------------------+-----------------------------------+------+-----+-----------------------+-------+ | Host | char(60) | NO | PRI | | | | User | char(16) | NO | PRI | | | | Select_priv | enum(''N'',''Y'') | NO | | N | | | Insert_priv | enum(''N'',''Y'') | NO | | N | | | Update_priv | enum(''N'',''Y'') | NO | | N | | | Delete_priv | enum(''N'',''Y'') | NO | | N | | | Create_priv | enum(''N'',''Y'') | NO | | N | | | Drop_priv | enum(''N'',''Y'') | NO | | N | | | Reload_priv | enum(''N'',''Y'') | NO | | N | | | Shutdown_priv | enum(''N'',''Y'') | NO | | N | | | Process_priv | enum(''N'',''Y'') | NO | | N | | | File_priv | enum(''N'',''Y'') | NO | | N | | | Grant_priv | enum(''N'',''Y'') | NO | | N | | | References_priv | enum(''N'',''Y'') | NO | | N | | | Index_priv | enum(''N'',''Y'') | NO | | N | | | Alter_priv | enum(''N'',''Y'') | NO | | N | | | Show_db_priv | enum(''N'',''Y'') | NO | | N | | | Super_priv | enum(''N'',''Y'') | NO | | N | | | Create_tmp_table_priv | enum(''N'',''Y'') | NO | | N | | | Lock_tables_priv | enum(''N'',''Y'') | NO | | N | | | Execute_priv | enum(''N'',''Y'') | NO | | N | | | Repl_slave_priv | enum(''N'',''Y'') | NO | | N | | | Repl_client_priv | enum(''N'',''Y'') | NO | | N | | | Create_view_priv | enum(''N'',''Y'') | NO | | N | | | Show_view_priv | enum(''N'',''Y'') | NO | | N | | | Create_routine_priv | enum(''N'',''Y'') | NO | | N | | | Alter_routine_priv | enum(''N'',''Y'') | NO | | N | | | Create_user_priv | enum(''N'',''Y'') | NO | | N | | | Event_priv | enum(''N'',''Y'') | NO | | N | | | Trigger_priv | enum(''N'',''Y'') | NO | | N | | | Create_tablespace_priv | enum(''N'',''Y'') | NO | | N | | | ssl_type | enum('''',''ANY'',''X509'',''SPECIFIED'') | NO | | | | | ssl_cipher | blob | NO | | NULL | | | x509_issuer | blob | NO | | NULL | | | x509_subject | blob | NO | | NULL | | | max_questions | int(11) unsigned | NO | | 0 | | | max_updates | int(11) unsigned | NO | | 0 | | | max_connections | int(11) unsigned | NO | | 0 | | | max_user_connections | int(11) unsigned | NO | | 0 | | | plugin | char(64) | NO | | mysql_native_password | | | authentication_string | text | YES | | NULL | | | password_expired | enum(''N'',''Y'') | NO | | N | | | password_last_changed | timestamp | YES | | NULL | | | password_lifetime | smallint(5) unsigned | YES | | NULL | | | account_locked | enum(''N'',''Y'') | NO | | N | | +------------------------+-----------------------------------+------+-----+-----------------------+-------+ 45 rows in set (0.00 sec)

Sorpresa! No hay campo llamado ''contraseña'', el campo contraseña se llama ''autenticación_cadena''. Entonces, solo haz esto:

update user set authentication_string=password(''1111'') where user=''root'';

Ahora todo estará bien.

En comparación con MySQL 5.6, los cambios son bastante amplios: Novedades en MySQL 5.7


Este error ocurre si no configuró la contraseña en la instalación, en este caso mysql usando el complemento de socket de 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 como se dijo anteriormente.

Si no funciona, agregue la cadena skip-grant-tables en la sección [mysqld] de /etc/mysql/mysql.conf.d/mysqld.cnf . Luego haga sudo service mysql restart .

2) Ejecute mysql -u root -p , luego (cambie "PWD"):

update mysql.user set authentication_string=PASSWORD("PWD"), plugin="mysql_native_password" where User=''root'' and Host=''localhost''; flush privileges; quit

luego sudo service mysql restart . Verifique: mysql -u root -p .

Antes de restart elimine esa cadena del archivo mysqld.cnf, si la configuró allí.


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:

  1. Detenga el servidor mysqld. Normalmente, esto se puede hacer desde ''Preferencias del sistema''> MySQL> ''Detener el servidor MySQL''
  2. Inicie el servidor en modo seguro con omisión de privilegios desde un terminal: sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
  3. En una nueva ventana de terminal: sudo /usr/local/mysql/bin/mysql -u root UPDATE mysql.user SET Password=PASSWORD(''NewPassword'') WHERE User=''root''; FLUSH PRIVILEGES; /q sudo /usr/local/mysql/bin/mysql -u root UPDATE mysql.user SET Password=PASSWORD(''NewPassword'') WHERE User=''root''; FLUSH PRIVILEGES; /q
  4. Detenga el servidor mysqld nuevamente y reinícielo en modo normal.

Para MySQL versión 5.7 y superior

  1. Detenga el servidor mysqld. Normalmente, esto se puede hacer desde ''System Prefrences'' > MySQL > ''Stop MySQL Server''
  2. Inicie el servidor en modo seguro con omisión de privilegios desde un terminal: sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
  3. En una nueva ventana de terminal: sudo /usr/local/mysql/bin/mysql -u root UPDATE mysql.user SET authentication_string=PASSWORD(''NewPassword'') WHERE User=''root''; FLUSH PRIVILEGES; /q sudo /usr/local/mysql/bin/mysql -u root UPDATE mysql.user SET authentication_string=PASSWORD(''NewPassword'') WHERE User=''root''; FLUSH PRIVILEGES; /q
  4. Detenga el servidor mysqld nuevamente y reinícielo en modo normal.

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

Use mysql;

Y luego modifique el nombre del campo:

ALTER TABLE user CHANGE authentication_string password text;

Después de todo lo normal.


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 pueden 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

use mysql; update user set authentication_string=password(''your_password'') where user=''root''; FLUSH PRIVILEGES; quit


Un escollo en el que caí es que ahora no hay un campo de contraseña , 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'';


Use el comando ALTER USER lugar de intentar actualizar una fila USER . 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 conectan

https://dev.mysql.com/doc/refman/5.7/en/alter-user.html

Por ejemplo.

ALTER USER ''root''@''localhost'' IDENTIFIED BY ''new-password'' ALTER USER ''root''@''*'' IDENTIFIED BY ''new-password''


recuerde que la contraseña debe configurarse aún más después de reiniciar mysql como se muestra a continuación

SET PASSWORD = PASSWORD(''root'');