Cuando se trabaja con MySQL DBMS, es extremadamente importante saber cómo cambiar la contraseña de usuario. Parece que esta tarea se puede resolver sólo si tiene derechos de superusuario. Pero incluso un usuario normal puede cambiar la contraseña bajo ciertas circunstancias. En este artículo le diremos cómo hacerlo en circunstancias normales.
Puede cambiar la contraseña de un usuario de diferentes maneras. En el entorno MySQL, hay dos comandos para esta tarea - SET PASSWORD
y ALTER USER
. Vamos a hablarte de cada uno de estos dos métodos en detalle.
A principios de este año, MySQL tiene dos versiones principales. La primera es obsoleta pero aún soportada (es la versión 5.7), y la más actual en este momento es la versión 8.0. ¿Cómo averiguar la versión de MySQL? Puedes hacerlo con un comando especial, que debe ejecutarse en el terminal:
$ mysql –version
Como se puede ver en la imagen de arriba, se utiliza la versión 8.0.28, pero es importante tener en cuenta que ALTER USER
es relevante sólo en versiones anteriores de MySQL.En versiones más recientes, puede utilizar ambas versiones.
Para entrar en la consola, debe iniciar sesión en MySQL con su nombre de usuario y contraseña. Cuando un usuario ya está autorizado en el servidor, debe realizar todas las acciones en su nombre. Cuando se utiliza MySQL por primera vez, debe utilizar privilegios de root.
El comando para iniciar sesión como root:
$ mysql -u root –p
Después de eso, una solicitud de contraseña se producirá. Queda por introducir la contraseña, pulse la tecla Enter, inmediatamente después de que se cargará la interfaz de MySQL con todos los comandos disponibles.
La peculiaridad de MySQL es que tiene un host separado al que está vinculada una cuenta. Veamos los tres hosts principales:
Localhost sólo permite el inicio de sesión local sin conectividad remota, % significa que la cuenta puede utilizarse desde cualquier host, dirección IP/nombre de dominio significa que la cuenta sólo puede utilizarse en el nombre de dominio/dirección IP seleccionados.
Para averiguar el tipo de host de la cuenta tenemos que ejecutar la siguiente consulta SQL:
$ SELECT user, host FROM mysql.user
En la captura de pantalla anterior, podemos ver que el usuario alex tiene un host de %. Este host se debe utilizar al cambiar la contraseña. Los usuarios en MySQL y toda la información sobre los usuarios se almacenan en la base de datos mysql en la tabla user.
También puede cambiar la contraseña con el comando SET PASSWORD
. Para cambiar la contraseña del usuario alex con host % a somepassword666 necesitas usar el siguiente comando:
$ SET PASSWORD FOR 'alex'@'%' = 'somepassword666';
Puedes cambiar la clave del usuario usando otro comando - ALTER USER
. Para cambiar la contraseña del usuario alex con host % por otrapassword666 ejecutaremos una consulta SQL:
$ ALTER USER 'alex'@'%' IDENTIFIED BY 'anotherpassword666';
Tenga en cuenta que el nombre de usuario y el host están entre comillas simples, sin estas comillas MySQL no será capaz de reconocer la cadena.
Ahora restablece la caché de privilegios:
$ FLUSH PRIVILEGES;
Una vez que haya cambiado la contraseña, cambiado el privilegio y restablecido la caché, debe realizar una verificación de inicio de sesión como el usuario cuya contraseña fue cambiada.
Salga
del shell de MySQL ejecutando el comando exit
:
$ exit
Ahora inicie sesión en el shell:
$ mysql -u alex -p
Si ve el prompt del sistema mientras inicia sesión, es que ha hecho todo correctamente, lo que significa que la contraseña ha sido cambiada con éxito.