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.