Lá vai você novamente. Acabou de rodar uma máquina virtual para fazer alguns testes, instalou o MySQL usando o seu gestor de pacotes favorito, iniciou o servidor e não conseguiu ligar-se:

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

desde a versão 5.,7, o MySQL é seguro por omissão:

  • uma senha raiz aleatória é gerada na instalação; você precisa de ler esta senha a partir do registo do servidor
  • Tem de alterar esta senha da primeira vez que se ligar
  • Não pode usar uma senha em branco devido ao ‘plugin’ de validate_ password

isto é tudo seguro. Mas se você está apenas instalando MySQL em um VM local para seus próprios testes, isso pode se tornar realmente irritante.

para remover a senha de raiz do MySQL, basta executar o seguinte programa logo após instalar e iniciar o servidor de MySQL:

no MySQL 5.,7:

On MySQL 8.0:

Note: you must execute this script as root.,

O script executa as seguintes ações:

  • lê a palavra-passe temporária do arquivo de log
  • altera esta palavra-passe para outra palavra-passe temporária que passa o validate_password verifica
  • desinstala o validate_password plugin (ou componente no MySQL 8)
  • define uma palavra-passe em branco

agora Você pode conectar sem uma senha:

tenha cuidado para que isso deixa a sua instalação do MySQL não segura, você não deve usar isso para nada grave!,

Uma alternativa segura

Se você estiver usando principalmente o MySQL a partir da linha de comando, você pode manter o root conta protegida por uma senha, ainda evitando o inconveniente de ter que fornecer a senha na linha de comando.

Basta criar uma ~/.my.cnf arquivo:


user = root
password = xxx

agora Você pode digitar apenas mysql, e o cliente MySQL irá automaticamente iniciar sessão com as credenciais.