Natan Felles


Creative Webmaster


Resetando a Senha do Root no MySQL

Blog · desenvolvimento

Resetando a Senha do Root no MySQL

Hoje precisei acessar um servidor MySQL recém instalado no qual eu não sabia a senha do usuário root.

Mas eu tinha acesso de super-usuário no Linux. Então, decidi criar uma nova senha.

A maneira mais prática de realizar tal processo é utilizando o script mysqld_safe. Ele possui o parâmetro --skip-grant-tables, que possibilita logar sem inserir nenhuma senha. Para rodar esse script é necessário que exista o diretório /var/run/mysqld com propriedade do usuário do MySQL.

Antes de rodar o mysqld_safe, você pode conferir se o diretório necessário existe:

/var/run/mysqld

Caso não exista, crie-o e defina a propriedade:

sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld

Feito isso, abra outro terminal, certifique-se que o MySQL está desligado e execute o mysqld_safe para rodar em segundo plano:

sudo systemctl stop mysql.service
sudo mysqld_safe --skip-grant-tables &

Agora já será possível entrar apenas com mysql -uroot. Sem necessidade da senha.

Estando no prompt do MySQL, use a tabela mysql e defina sua nova senha:

USE mysql;
-- O nome da coluna é "Password" se a versão do seu MySQL é menor que 5.7
UPDATE user SET authentication_string=PASSWORD('nova-senha') WHERE user='root';
FLUSH PRIVILEGES;
EXIT

Com a nova senha definida, mate o processo do mysqld_safe com um Ctrl + C e inicie o MySQL:

sudo systemctl start mysql.service

À partir de então você poderá acessar o MySQL normalmente, com mysql -uroot -p.

Feito.

Fontes