Há anos que uso mysqld_safe
(assim) para --skip-grant-tables
poder redefinir com segurança minha root
senha do MySQL:
sudo mysqld_safe --skip-grant-tables &
Mas recentemente, ao tentar instalar o MySQL 8.0.36 no Red Hat 8, recebo:
mysqld_safe: command not found
Que diabos? Se o mysqld_safe
comando não for encontrado, como devo definir/alterar a root
senha?
Definitivamente, há muitas respostas na Internet sobre como alterar a
root
senha do usuário MySQL. E a principal lição que aprendi deles em 2024 é esta:O
mysqld_safe
(script binário/shell) definitivamente não faz mais parte do pacote MySQL 8 (8.0.36) no Red Hat 8 e possíveis outras distros Linux.Ele pode ter desaparecido (como um script binário/shell) da instalação do MySQL em
systemd
sistemas gerenciados desde pelo menos o MySQL 5.7.6, de acordo com esta outra resposta no Stack Overflow :Independentemente do motivo, se você receber esta mensagem ao tentar executar
mysqld_safe
:E seu sistema funciona
systemd
(também conhecido comosystemctl
:), então esta é definitivamente a resposta moderna que resolverá seus problemas em 4 etapas fáceis! Aqui vamos nós!mysqld
e reinicie-o com o devidoMYSQLD_OPTS
:root
sem senha:[password]
deve ser alterado para qualquer senha do MySQL desejada e definida para: Observe, acredito que o primeiroFLUSH PRIVILEGES;
esteja conectado ao iniciar o MySQL com oMYSQLD_OPTS
definido como--skip-grant-tables
. Independentemente disso, correrFLUSH PRIVILEGES;
não representa nenhum risco/perigo.MYSQLD_OPTS
e reinicie o MySQL da seguinte maneira:Agora com tudo isso feito, tente fazer login no MySQL como root com uma senha como esta:
Pressione Enter/ Returne digite sua
root
senha recém-definida e… et voilà! Você deve estar logado no MySQL comoroot
!Obs : Optei por definir a senha com
caching_sha2_password
plugin de autenticação, mas se quiser ser mais moderno, pode usarmysql_native_password
da seguinte forma: