MySQL · 5 min read · Feb 13, 2026
Definindo, Mudando e Redefinindo Senhas de Root do MySQL e MariaDB

Este tutorial explica como você pode definir, mudar e redefinir (se você esqueceu a senha) as senhas de root do MySQL ou MariaDB. Repetidamente vejo problemas como mysqladmin: connect to server at ‘localhost’ failed error: ‘Access denied for user ‘root’@’localhost’ (using password: YES)’. Então pensei que era hora de lembrá-lo como resolver problemas relacionados a senhas do MySQL. Se você está apenas procurando uma solução rápida como redefinir uma senha de root do MySQL, você pode encontrá-la no final deste tutorial. Este tutorial é compatível com todas as principais distribuições Linux, incluindo CentOS, Debian, Fedora e Ubuntu.
Use o Comando mysqladmin para Mudar a Senha de Root
Método 1 - Configure uma senha de root pela primeira vez
Se você nunca definiu uma senha de root para o MySQL, o servidor não requer uma senha para conectar como root. Para configurar uma senha de root pela primeira vez, use o comando mysqladmin no prompt do shell da seguinte forma:
mysqladmin -u root password newpassSe você quiser mudar (ou atualizar) uma senha de root para a nova senha ‘ newpass ‘, então você precisa usar o seguinte comando:
mysqladmin -u root -p password newpassDigite a senha:Se você receber…
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'então siga as instruções abaixo sobre como recuperar sua senha do MySQL.
A palavra ‘ password ‘ no exemplo acima é parte do comando, não a substitua pela sua senha. A palavra ‘ newpass ‘ é a nova senha.
Uma alternativa ao uso do comando mysqladmin ao definir a senha de root do MySQL ou MariaDB pela primeira vez é usar o comando mysql_secure_installation. Este comando não apenas pedirá a senha antiga e nova do root do MySQL, mas também fará algumas outras configurações de segurança, como desabilitar o banco de dados de teste.
Aqui está como usar esse comando:
mysql_secure_installationResponda às perguntas conforme mostrado abaixo:
Mudar a senha de root? [Y/n] <-- y
Nova senha: <-- Digite uma nova senha de root do MySQL
Repetir nova senha: <-- Repita a senha de root do MySQL
Remover usuários anônimos? [Y/n] <-- y
Desabilitar login remoto do root? [Y/n] <-- y
Remover banco de dados de teste e acesso a ele? [Y/n] <-- y
Recarregar tabelas de privilégios agora? [Y/n] <-- y As respostas acima são recomendações, você é livre para escolher outras configurações, por exemplo, quando prefere manter os bancos de dados de teste ou precisa de acesso remoto para o usuário root. Nota: você não precisa de acesso remoto para usar o PHPMyAdmin remotamente.

Mudar a senha do MySQL para outros usuários
Para mudar a senha de um usuário normal, você precisa digitar:
mysqladmin -u user-name -p password newpassAs variáveis neste exemplo são:
- user-name: O nome de usuário do usuário cuja senha você deseja mudar.
- newpass: A nova senha
A palavra ‘password’ não é uma variável, então não a substitua. O comando pedirá a senha antiga.
Método 2 - Atualizar ou mudar a senha
O MySQL armazena nomes de usuários e senhas na tabela de usuários dentro do banco de dados MySQL. Você pode atualizar diretamente uma senha usando o seguinte método para atualizar ou mudar senhas:
- Faça login no servidor MySQL, digite o seguinte comando no prompt do shell:
mysql -u root -p- Use o banco de dados mysql (digite comandos no prompt mysql>):
mysql> use mysql;- Mude a senha de um usuário:
MySQL 5.7.5 e anteriores
mysql> update user set password=PASSWORD("newpass") where User='ENTER-USER-NAME-HERE';MySQL 5.7.6 e mais recentes
mysql> SET PASSWORD FOR 'ENTER-USER-NAME-HERE'@'localhost' = PASSWORD("newpass");- Recarregue os privilégios:
mysql> flush privileges;
mysql> quitEste método você precisa usar ao usar PHP ou Perl scripting.
Recuperar senha de root do MySQL perdida
Você pode recuperar a senha de um servidor de banco de dados MySQL com os seguintes cinco passos fáceis:
Passo # 1: Pare o processo do servidor MySQL.
Passo # 2: Inicie o servidor/daemon MySQL (mysqld) com a opção –skip-grant-tables para que ele não peça uma senha.
Passo # 3: Conecte-se ao servidor MySQL como o usuário root.
Passo # 4: Defina uma nova senha de root.
Passo # 5: Saia e reinicie o servidor MySQL.
Aqui estão os comandos que você precisa digitar para cada passo (faça login como o usuário root):
Passo # 1: Pare o serviço MySQL:
service mysql stopSaída:
Parando o servidor de banco de dados MySQL: mysqld.Passo # 2: Inicie o servidor MySQL sem senha:
mysqld_safe --skip-grant-tables &Saída:
[1] 5988
Iniciando o daemon mysqld com bancos de dados de /var/lib/mysql
mysqld_safe[6025]: iniciadoPasso # 3: Conecte-se ao servidor MySQL usando o cliente MySQL:
mysql -u rootSaída:
Bem-vindo ao monitor MySQL. Os comandos terminam com ; ou \g.
Seu ID de conexão MySQL é 56299
Versão do servidor: 5.6.34-1 (Debian)Copyright (c) 2000, 2016, Oracle e/ou suas afiliadas. Todos os direitos reservados.Oracle é uma marca registrada da Oracle Corporation e/ou suas
afiliadas. Outros nomes podem ser marcas registradas de seus respectivos
proprietários.Digite 'help;' ou '\h' para ajuda. Digite '\c' para limpar a declaração de entrada atual.
mysql>Passo # 4: Defina uma nova senha de usuário root do MySQL:
MySQL 5.7.5 e anteriores
mysql> use mysql;
mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quitMySQL 5.7.6 e mais recentes
mysql> use mysql;
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD("newpass");
mysql> flush privileges;
mysql> quit Passo # 5: Pare o servidor MySQL:
service mysql stopSaída:
Parando o servidor de banco de dados MySQL: mysqld
PARANDO o servidor do arquivo pid /var/run/mysqld/mysqld.pid
mysqld_safe[6186]: terminado
[1]+ Feito mysqld_safe --skip-grant-tablesOu use este comando para parar o MySQL se o comando acima falhar em pará-lo (qual comando funciona depende da versão do MySQL):
killall mysqldA saída pode diferir com base na distribuição Linux. Não se preocupe, a menos que reporte um erro. Inicie o servidor MySQL e teste:
service mysql start
mysql -u root -pReceba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.