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 newpass

Se 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 newpass
Digite 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_installation

Responda à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.

Use mysql_secure_installation para mudar a senha de root do MySQL

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 newpass

As 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:

  1. Faça login no servidor MySQL, digite o seguinte comando no prompt do shell:
mysql -u root -p
  1. Use o banco de dados mysql (digite comandos no prompt mysql>):
mysql> use mysql;
  1. 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");
  1. Recarregue os privilégios:
mysql> flush privileges;  
mysql> quit

Este 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 stop

Saí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]: iniciado

Passo # 3: Conecte-se ao servidor MySQL usando o cliente MySQL:

mysql -u root

Saí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> quit

MySQL 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 stop

Saí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-tables

Ou 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 mysqld

A 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 -p
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.