¿Cómo cambiar mi contraseña de root de mysql de nuevo a vacía?

43

Cuando estoy trabajando localmente, realmente no necesito ingresar mi contraseña para acceder a mi base de datos. Cambié mi contraseña de root cuando instalé mysql por primera vez, pero no sé cómo volver a cambiar mi contraseña. ¿Qué tengo que hacer?

Andrés
fuente

Respuestas:

43

Para cambiar la contraseña de root a newpassword:

 mysqladmin -u root -p'oldpassword' password 'newpassword'

Para cambiarlo para que root no requiera una contraseña:

 mysqladmin -u root -p'oldpassword' password ''

Nota: Creo que importa que no haya un espacio entre el -py, 'oldpassword'pero puedo estar equivocado al respecto

Andrés
fuente
3
sigo recibiendo el error: acceso denegado para 'root' @ localhost. ¿Cómo puedo solucionar esto por favor?
tq
funciona para mí: mysqladmin -u root -p'oldpassword 'contraseña' '@tq: debe escribir la contraseña antigua
Bảo Nam
15

En lugar de eliminar la contraseña (que puede tener consecuencias desagradables en el futuro si expone ese servidor a la naturaleza), coloque la contraseña actual (y su nombre de usuario) en ~/.my.cnf(o presumiblemente en una ubicación equivalente en Windows) que se ve así:

[client]
user = root
password = s3kr1t

Esto le da a MySQL la asombrosa capacidad de iniciar sesión automáticamente usando las credenciales proporcionadas, sin dejarlo abierto a desagradables en el futuro.

womble
fuente
7
  1. Detenga mysqld y reinícielo con la opción --skip-grant-tables .
  2. Conéctese usando solo mysql .
  3. Cambiar la contraseña de root:

    ACTUALIZAR mysql.user SET Contraseña = CONTRASEÑA ('MyNewPass') DONDE Usuario = 'root';

    ENJUAGUE PRIVILEGIOS;

Como referencia: los documentos oficiales de mysql .


fuente
1
Esto funciona, pero es una forma de fuerza bruta de hacerlo. Esto es más para cuando no conoces la contraseña.
David
6

Tenga en cuenta que a partir de MySQL 5.7, el complemento validate_password está activo de forma predeterminada y evita que use una contraseña vacía.

Debe deshabilitar este complemento para permitir una contraseña vacía:

UNINSTALL PLUGIN validate_password;
SET PASSWORD FOR root@localhost = PASSWORD('');

Tenga cuidado de que, a menos que no le importe la seguridad, debe seguir los consejos de @ womble y usar una contraseña, junto con un .my.cnfarchivo para su comodidad.

¡Consulte mi artículo sobre cómo eliminar la contraseña de root de MySQL sobre este tema!

Benjamín
fuente
Para las versiones> 5.6, esta es la única forma en que funciona. Sospecho que también debería funcionar en versiones anteriores.
Diego
1

En versiones más nuevas

UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPass') WHERE User='root'

y esto eliminará la contraseña

UPDATE mysql.user SET authentication_string=PASSWORD('') WHERE User='root'
Abadis
fuente
-1

Para la última versión de MySQL 5.7.23:

mysqladmin -u root password '' -p

maestro
fuente