Restablezca la contraseña de root de MySQL usando la declaración ALTER USER después de instalar en Mac

184

Soy nuevo en toda la experiencia de Mac. Recientemente instalé MySQL y parece que tengo que restablecer la contraseña después de la instalación. No me dejará hacer nada más.

Ahora ya restablecí la contraseña de la manera habitual:

update user set password = password('XXX') where user = root;

(Por cierto: me llevó años descubrir que MySQL, por alguna extraña razón, cambió el nombre del campo 'contraseña' a 'autenticación_cadena'. Estoy bastante molesto por cambios como ese).

Desafortunadamente, parece que necesito cambiar la contraseña de una manera diferente que desconozco. ¿Quizás alguien aquí ya se ha encontrado con ese problema?

dengar81
fuente

Respuestas:

509

Si NO es la primera vez que configura la contraseña, pruebe este método:

mysql> UPDATE mysql.user SET Password=PASSWORD('your_new_password')
           WHERE User='root'; 

Y si obtiene el siguiente error, existe una alta probabilidad de que nunca haya configurado su contraseña antes:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 

Para configurar su contraseña por primera vez :

mysql> SET PASSWORD = PASSWORD('your_new_password');
Query OK, 0 rows affected, 1 warning (0.01 sec)

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

Menta
fuente
10
¡Gracias! ¡Mensaje de error muy confuso de MySQL sin embargo!
Ed.
1
Esto funcionó para mí con mysql-5.7.13-osx10.11-x86_64
GiriB
1
Después de 'mysql> SET PASSWORD = PASSWORD (' your_new_password ');', obtengo el siguiente error: 'ERROR 29 (HY000): Archivo' ./mysql/user.MYD 'no encontrado (Errcode: 2 - No existe archivo o directorio) ". Alguien me puede ayudar ?
Ray Kim
44
Notarás que contrariamente a lo que sugiere MySQL, no utilizas la declaración "ALTER USER", sino solo "SET PASSWORD" ...
Fabien Haddadi
1
El primer ejemplo potencialmente intenta establecer una contraseña para otro usuario que no sea el que está utilizando al enviar esa línea. El segundo intenta establecer la contraseña para el usuario que usó para iniciar sesión en mysql. Así lo posterior funciona.
Hafenkranich
130

Si comenzaste mysql usando mysql -u root -p

Tratar ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

Fuente: http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

shnraj
fuente
1
¡Gracias! ¡Esto funcionó para mí! Estoy usando mysql-5.7.11-osx10.10-x86_64.
LeArNr
Esto funcionó; ¡Gracias! Me entristece profundamente que a pesar de que MySQL es un programa tan ampliamente utilizado, no hay una documentación única para instalar y ejecutarlo rápidamente.
Shatu
Gracias ! Me ayudó
Sparw
3
Después de mucha frustración, una variante de esto funcionó en mint 18 mysql 5.7.18:ALTER USER 'root'@'localhost' indentified WITH mysql_native_password BY 'password';
Steve
Un millón de gracias. Eso es lo único que me ha funcionado.
RandyMy
33

Tengo el mismo problema en Mac

Primero, inicie sesión en mysql con modo sandbox

mysql -u <user> -p --connect-expired-password

Luego, establezca la contraseña

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('XXXX');

Query OK, 0 rows affected, 1 warning (0.01 sec)

Funciona para mi ~

vía: /dba/118852/your-paswssword-has-expired-after-restart-mysql-when-updated-mysql-5-7-8-rcde

Ezio Shiki
fuente
1
Parece bastante complicado teniendo en cuenta que tiene que hacer esto antes de usar la base de datos.
seba.wagner
en la advertencia que quiere que usesSET PASSWORD FOR 'root'@'localhost' = 'XXXX';
Arsen Zahray
22

Si usa MySQL 5.7.6 y posterior:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

Si usa MySQL 5.7.5 y versiones anteriores:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

Documentación MySQL

Johel Alvarez
fuente
1
Estoy usando MySQL 5.7.9 y lo extraño me SET PASSWORD = PASSWORD('my_pass')funcionó. Hay comentarios de personas con versiones más recientes que mencionan que esta declaración también les funcionó. A pesar de esto, elevé tu respuesta ya que encontraste esta referencia particular en documentos de MySQL que nadie mencionó anteriormente.
Armfoot
MySQL 8 SET PASSWORD arrojó y error. ALTERAR USUARIO funcionó.
Timar Ivo Batis
13

En MySQL 5.7.x necesita cambiar a una contraseña nativa para poder cambiarla, como:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';
Vadim Smilansky
fuente
11

Ejecute estos:

$ cd /usr/local/mysql/bin
$ ./mysqladmin -u root password 'password'

Entonces corre

./mysql -u root

Debe iniciar sesión. Ahora ejecute los privilegios FLUSH;

Luego salga de la consola MySQL e intente iniciar sesión. Si eso no funciona, ejecute estos:

$ mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET authentication_string=PASSWORD("XXXXXXX") WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> quit

Cambie xxxxxx a su nueva contraseña. Luego intente iniciar sesión nuevamente.

Actualizar. Ver esto http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

debería resolver tu problema.

Si estás en Oracle prueba esto

ALTER USER username IDENTIFIED BY password

fuente
No, lo siento, esto tampoco funciona. Al menos ya no. Oracle ha cambiado el nombre de la columna 'contraseña', por cierto. Ahora se llama autenticación_cadena. Pero no puedo ejecutar este comando, porque primero tengo que cambiar la contraseña con el comando ALTER USER. Esto es increíblemente frustrante, porque no es así como tradicionalmente actualizarías la contraseña. ALTER debe reservarse para tablas, funciones y demás, sin alterar las entradas en una tabla. Esa es la declaración de actualización. (Perdón por despotricar)
dengar81
@Shivan Paw: dos advertencias que esperaría: mysqladmin: [Advertencia] Usar una contraseña en la interfaz de la línea de comandos puede ser inseguro. Advertencia: dado que la contraseña se enviará al servidor en texto plano, utilice la conexión SSL para garantizar la seguridad de la contraseña. - Consideraría que la contraseña está actualizada. Y de hecho puedo iniciar sesión con la nueva contraseña. Sin embargo, todavía no puedo ejecutar ninguna consulta, ya que necesito actualizar la contraseña con el comando ALTER USER :(.
dengar81
@ Pata Shivan: ¿Probar qué? Ya intenté usar los comandos que sugeriste. Restablecer la contraseña utilizando el comando ./mysqladmin (dos advertencias) y luego proceder a ejecutar la actualización en mysql.user ... El segundo comando falla con el mensaje "Debe restablecer su contraseña utilizando ALTER USER [...]"
dengar81
Esta es la única solución que funcionó para mí. Si tiene una contraseña caducada en la última versión de mysql, no le permitirá ALTER_USER o SET_PASSWORD.
Aaron Henderson
7

Tal vez intente eso?

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('XXX');

o

SET PASSWORD FOR 'root'@'%' = PASSWORD('XXX');

Dependiendo del acceso que use.

(y no estoy seguro de que debas cambiar los nombres de los campos ...)

https://dev.mysql.com/doc/refman/5.0/en/set-password.html

Mateo Barahona
fuente
No, lo siento, esto no funciona: ERROR 1820 (HY000): debe restablecer su contraseña utilizando la declaración ALTER USER antes de ejecutar esta declaración.
dengar81
7

ALTERAR USUARIO 'root' @ 'localhost' IDENTIFICADO POR 'new_password';

Usa esta línea ...

Manoj Behera
fuente
7

ACTUALIZAR el conjunto de usuarios autenticación_cadena = CONTRASEÑA ("Mi Contraseña") DONDE Usuario = 'raíz'; ERROR 1064 (42000): tiene un error en su sintaxis SQL; consulte el manual que corresponde a la versión de su servidor MySQL para obtener la sintaxis correcta para usar cerca de '("MyPassWord") DONDE Usuario =' root '' en la línea 1

Resuelto con

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

Referencia desde abajo del sitio

https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html

Siddharth Pandey
fuente
5

Encendido Ver 14.14 Distrib 5.7.19, for macos10.12 (x86_64), inicié sesión como: mysql -uroot -pluego escribí la contraseña generada por MySQL cuando la instalé. Luego..

ALTER USER 'root'@'localhost' IDENTIFIED BY '<new_password>';

Ejemplo:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Ab1234'; Query OK, 0 rows affected (0.00 sec) mysql> exit Bye $ mysql -uroot -p

Y puedes escribir 'Ab1234'

Kenny Alvizuris
fuente
3

Mysql 5.7.24 obtener el primer inicio de sesión de root

Paso 1: obtenga la contraseña del registro

 grep root@localhost /var/log/mysqld.log
    Output
        2019-01-17T09:58:34.459520Z 1 [Note] A temporary password is generated for root@localhost: wHkJHUxeR4)w

paso 2: inicia sesión con él en mysql

mysql -uroot -p'wHkJHUxeR4)w'

Paso 3: pones una nueva contraseña de root

SET PASSWORD = PASSWORD('xxxxx');

usted obtiene ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

como arreglarlo

ejecuta esto SET GLOBAL validate_password_policy=LOW;

Inténtalo de nuevo SET PASSWORD = PASSWORD('xxxxx');

Robert A
fuente
2

Aquí está la forma en que funciona para mí.

mysql> show databases ;

ERROR 1820 (HY000): debe restablecer su contraseña utilizando la declaración ALTER USER antes de ejecutar esta declaración.

mysql> uninstall plugin validate_password;

ERROR 1820 (HY000): debe restablecer su contraseña utilizando la declaración ALTER USER antes de ejecutar esta declaración.

mysql> alter user 'root'@'localhost' identified by 'root';

Consulta OK, 0 filas afectadas (0.01 seg)

mysql> flush privileges;

Consulta OK, 0 filas afectadas (0.03 segundos)

sunling90
fuente
1

Cuando lo usas SET PASSWORD = PASSWORD('your_new_password');puede bloquearse

(ERROR 1819 (HY000): su contraseña no cumple con los requisitos de la política actual)

.puedes usar SET GLOBAL validate_password_policy=LOW;para amarlo.

未来 陆家嘴 顶尖 的 投资 人
fuente
1

en la versión 5.7. el campo 'contraseña' ha sido eliminado. 'autenticación_cadena' reemplazarlo

use mysql;
update user set authentication_string=password('123456') where user='root';
flush privileges;
HUAN LIU
fuente
0

También tuve el mismo problema en mac OS X 10.10.4 (Yosemite). CONFIGURAR LA CONTRASEÑA funciona para mí. Modifique la contraseña para mysql- mysql> SET PASSWORD = PASSWORD ('your_password'); Consulta OK, 0 filas afectadas, 1 advertencia (0.01 seg)

establezca su variable de ruta de entorno Mysql en .bash_profile y agregue la siguiente línea
export PATH = $ PATH: / usr / local / mysql / bin, después de eso, ejecute el siguiente comando: source .bash_profile

Moumita
fuente
0

Tuve el problema después de instalar mysql workbench y mysql community server. Obtuve contraseña generada durante la instalación del servidor. Al hacer doble clic en la instancia local existente en el banco de trabajo, se activó un cuadro de diálogo donde pude establecer la nueva contraseña.

Malte
fuente
0

mysql> SET PASSWORD = PASSWORD('your_new_password'); Funciona para mi.

zhao
fuente
0

recuerde las versiones 5.7.23 y posteriores: la tabla de usuario no tiene una contraseña de columna en lugar de una cadena de autenticación, por lo que a continuación funciona mientras se restablece la contraseña de un usuario.

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