Compartilhe que você está se especializando

MySQL no CentOS

Para definir uma nova senha basicamente é necessário para o serviço e executá-lo manualmente, em modo seguro e com a sintaxe que garanta acesso às tabelas. Vamos dar aqui dois exemplos rápidos de como proceder, lembrando de que as partes em cinza devem ser alteradas conforme sua necessidade:

Pare o MySQL (provavelmente com os comandos /etc/init.d/mysql stop ou systemctl stop mysql)

Inicie o MySQL em modo seguro e com acesso às tabelas, com o seguinte comando:

mysqld_safe --skip-grant-tables

Agora acesse o MySQL, com o comando:

mysql -uroot

Dentro, execute os comandos abaixo para definir uma nova senha:

use mysql;
update user set authentication_string=PASSWORD("SUA_NOVA_SENHA") where User='root';
flush privileges;
quit

Agora encerre o processo do mysql_safe (comandos ps -aux | grep mysql para obter o pid e kill para encerrar) e inicie o serviço do MySQL.

MySQL 8 no CentOS

No MySQL 8 você não irá encontrar o comando mysqld_safe, por isso execute o seguinte procedimento:

Pare o serviço MySQL (provavelmente com os comandos /etc/init.d/mysql stop ou systemctl stop mysql)

Edite o arquivo my.cnf (provavelmente estará na pasta /etc), localize a sessão [mysqld] e adicione logo abaixo a linha skip-grant-tables (salve e feche o arquivo)

Inicie o serviço do MySQL

Agora acesse o MySQL, com o comando:

mysql -uroot

Dentro, execute os comandos abaixo para definir uma nova senha:

flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'SUA_NOVA_SENHA';
flush privileges;
quit;

Por fim, pare o MySQL, remova a linha skip-grant-tables do arquivo my.cnf e inicie novamente o MySQL.

MySQL 8 no Windows

Para definir uma nova senha basicamente é necessário para o serviço e executá-lo manualmente, já inserindo um script de inicialização com o comando SQL para definir uma nova senha. Vamos dar aqui dois exemplos rápidos de como proceder, lembrando de que as partes em cinza devem ser alteradas conforme sua necessidade:

Antes de mais nada, crie um arquivo de texto (nesse caso criaremos C:\Temp\reset-mysql.txt) com o seguinte conteúdo:

ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘novasenha‘;

Agora, abra a console de Serviços (services.msc) no Windows, localize o serviço MySQL e pare ele. Ainda na console, abra o serviço e copie todo o caminho de execução (deve possuir tanto o caminho do binário, quanto o caminho do arquivo ini).

Abra o CMD como administrador e execute o comando composto pelo: binário do MySQL, o arquivo .ini do MySQL e o arquivo de script com a troca de senha. Um cuidado é que ao invés de usar “\“, usaremos “\\“, um exemplo do comando será:

D:\\MySQL\\bin\\mysqld.exe –defaults-file=”D:\\MySQL\\my.ini” –init-file=”C:\\Temp\\reset-mysql.txt

Feche o CMD e inicie normalmente o serviço do MySQL.

Fontes/Referências

https://dev.mysql.com/doc/mysql-windows-excerpt/8.0/en/resetting-permissions-windows.html
https://support.rackspace.com/how-to/mysql-resetting-a-lost-mysql-root-password/
https://unix.stackexchange.com/questions/58655/turn-off-skip-grant-tables-in-mysql

Mais Informações

Esperamos ter te ajudado e estaremos sempre a disposição para mais informações.

Se você tem interesse em algum assunto específico, tem alguma dúvida, precisa de ajuda, ou quer sugerir um post, entre em contato conosco pelo e-mail equipe@nvlan.com.br.

NVLAN - Consultoria