Como alterar a senha do MariaDB para usuários root e regulares
Esqueceu sua senha root do MariaDB? Sem ela, você não poderá gerenciar usuários, bancos de dados ou realizar configurações críticas. Neste artigo, você aprenderá não apenas como redefinir rapidamente a senha root do MariaDB, mas também como redefinir a senha para usuários regulares.
Para MySQL, por favor, consulte nosso guia separado.
O usuário root é o principal administrador do banco de dados. Eles têm acesso total a todos os dados e configurações. Se você perder esta senha, não poderá alterar algumas configurações ou executar comandos.
Todas as operações serão realizadas via linha de comando via SSH. Você pode encontrar instruções detalhadas sobre como se conectar ao seu servidor usando SSH neste artigo.
Antes de prosseguir, verifique o conteúdo do arquivo /root/.my.cnf. Muitas vezes, ele contém a senha root atual para acessar o MariaDB.
Para testar a conexão, use o comando:
mysql -u root -p
Em seguida, insira a senha do arquivo .my.cnf.
Se a senha não funcionar, siga as instruções abaixo.
Redefinindo a senha
Na maioria dos comandos abaixo, o comando mysql será usado em vez de mariadb para interagir com o servidor MariaDB. Isso ocorre porque, em alguns sistemas operacionais, como distribuições baseadas em RHEL (RockyLinux, AlmaLinux, etc.), o comando mariadb não está disponível. Em vez disso, o comando mysql é usado para compatibilidade com o MySQL.
Usar o comando mysql fornece compatibilidade universal, independentemente da distribuição ou implementação do servidor.
Passo 1: Parar o MariaDB
Para redefinir a senha, primeiro pare o servidor MariaDB. Execute o seguinte comando:
systemctl stop mariadb
Passo 2: Reiniciar o servidor em modo seguro
- Para Debian e Ubuntu:
Certifique-se de que o diretório em que o MariaDB será executado exista e tenha o proprietário correto:
mkdir -p /var/run/mysqld/ && chown -R mysql: /var/run/mysqld/
Inicie o servidor MariaDB sem controle de acesso:
mysqld_safe --skip-grant-tables --socket=/var/run/mysqld/mysqld.sock &
Se o servidor MariaDB iniciar com sucesso, você verá uma mensagem semelhante a:
2024-11-28T23:50:19.298141Z mysqld_safe Starting mariadb daemon with databases from /var/lib/mysql
Para continuar trabalhando na linha de comando, pressione “Ctrl + C”.
- Para CentOS/RockyLinux/AlmaLinux:
Inicie o servidor MariaDB sem controle de acesso:
mysqld_safe --skip-grant-tables --socket=/var/lib/mysql/mysql.sock &
Para continuar trabalhando na linha de comando, pressione “Ctrl + C”.
Passo 3: Conectar ao MariaDB
- Para Debian e Ubuntu:
mysql --socket=/var/run/mysqld/mysqld.sock
- Para CentOS/RockyLinux/AlmaLinux:
mysql --socket=/var/lib/mysql/mysql.sock
Passo 4: Redefinir a senha
Execute os seguintes comandos sequencialmente:
FLUSH PRIVILEGES;
Para um usuário local:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NovaSenha';
Para um usuário de rede (se existir):
ALTER USER 'root'@'%' IDENTIFIED BY 'NovaSenha';
Em seguida:
FLUSH PRIVILEGES;
Substitua NovaSenha pela sua nova senha desejada.
'user'@'localhost' — refere-se a um usuário local que se conecta via socket ou localhost. 'user'@'%' refere-se a um usuário de rede com acesso de qualquer endereço IP.
Você pode definir a mesma senha ou senhas diferentes para esses usuários. Se o usuário de rede não existir, o comando @'%' resultará em um erro.
Saia do MariaDB usando o comando exit ou pressionando “Ctrl + D”.
Passo 5: Reiniciar o MariaDB
Pare o servidor MariaDB:
- Para Debian e Ubuntu:
mysqladmin shutdown --socket=/var/run/mysqld/mysqld.sock -p
Em seguida, insira a senha root definida anteriormente.
- Para CentOS/RockyLinux/AlmaLinux:
mysqladmin shutdown --socket=/var/lib/mysql/mysql.sock -p
Em seguida, insira a senha root definida anteriormente.
Inicie o MariaDB em modo normal:
systemctl start mariadb
Como redefinir a senha para usuários regulares
Se você esquecer a senha de um usuário que não seja o root, a abordagem é semelhante:
- Conecte-se ao servidor MariaDB como root:
mysql -u root -p
Insira sua senha root do MariaDB.
- Execute o comando para alterar a senha:
Para um usuário local:
ALTER USER 'username'@'localhost' IDENTIFIED BY 'NovaSenhaUsuario';
Para um usuário de rede (se existir):
ALTER USER 'username'@'%' IDENTIFIED BY 'NovaSenhaUsuario';
Em seguida:
FLUSH PRIVILEGES;
Substitua username pelo nome de usuário real e NovaSenhaUsuario pela sua nova senha desejada.
Saia do MariaDB usando o comando exit ou pressionando “Ctrl + D”.
Se necessário, você pode listar todos os usuários com a seguinte consulta:
SELECT User, Host FROM mysql.user;
Como se conectar ao MariaDB localmente sem inserir senha
Para evitar digitar a senha manualmente toda vez que se conectar ao MariaDB a partir da linha de comando em seu servidor, você pode salvá-la no arquivo /root/.my.cnf. Abra o arquivo em um editor de texto:
nano /root/.my.cnf
Adicione as seguintes linhas:
[client]
user = root
password = SuaSenhaRoot
Substitua SuaSenhaRoot pela sua senha root real.
Salve o arquivo pressionando Ctrl + O e, em seguida, saia do editor de texto com Ctrl + X.
Para fins de segurança, defina permissões mais restritas no arquivo .my.cnf:
chmod 600 /root/.my.cnf
Após isso, você pode se conectar simplesmente executando o comando:
mysql -u root