Hay que ir de nuevo. Acaba de girar una máquina virtual para hacer algunas pruebas, instaló MySQL utilizando su administrador de paquetes favorito, inició el servidor y no pudo conectarse:

$ mysql --user=root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

desde la versión 5.,7, MySQL es Seguro por defecto:

  • se genera una contraseña de root aleatoria al momento de la instalación; necesita leer esta contraseña desde el registro del servidor
  • tiene que cambiar esta contraseña la primera vez que se conecta
  • no puede usar una contraseña en blanco debido al plugin validate_password

todo esto es bueno desde el punto de vista de la seguridad. Pero si solo está instalando MySQL en una máquina virtual local para sus propias pruebas, esto puede llegar a ser realmente molesto.

para eliminar la contraseña raíz de MySQL, simplemente ejecute el siguiente script justo después de instalar e iniciar el servidor MySQL:

en MySQL 5.,7:

On MySQL 8.0:

Note: you must execute this script as root.,

el script realiza las siguientes acciones:

  • lee la contraseña temporal del archivo de registro
  • cambia esta contraseña por otra contraseña temporal que pasa el validate_password comprueba
  • desinstala el validate_password plugin (o componente en MySQL 8)
  • establece una contraseña en blanco

ahora puede conectarse sin una contraseña:

tenga cuidado de que esto deje su instalación de MySQL sin seguridad, ¡no debe usar esto para nada serio!,

una alternativa segura

Si está utilizando principalmente MySQL desde la línea de comandos, puede mantener la cuenta root protegida por una contraseña, evitando al mismo tiempo el inconveniente de tener que proporcionar la contraseña en la línea de comandos.

simplemente cree un ~/.my.cnf archivo:


user = root
password = xxx

ahora puede escribir mysql, y el cliente MySQL iniciará sesión automáticamente con estas credenciales.