Como resetar a senha de root do servidor MySQL

Vamos rapidinho para não perder tempo. Você deve ter acesso root ao seu sistema:

Parar o serviço do MySQL:

# systemctl stop mysql

Iniciar o servidor do MySQL sem checagem de permissões:

# mysqld --skip-grant-tables &
# mysql

No prompt do MySQL: mudar a senha (substituindo ‘new-password’ na query pela senha que você deseja):

mysql> UPDATE mysql.user SET Password = PASSWORD('NEW-PASSWORD') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
mysql> exit;

Parar essa instância do servidor e iniciar no modo normal:

# mysqladmin -u root -p shutdown
# systemctl start mysql

Feito! Fica o recado: É melhor esquecer e ter que resetar a senha de root do que achá-la nos arquivos de alguma aplicação. 🙂

Terraform e DigitalOcean: Infra as code nunca foi tão simples!

Terraform é uma ferramenta multiplataforma para construir, modificar e versionar uma infraestrutura com segurança.
Com ele você escreve um código, numa linguagem declarativa e de fácil compreensão tudo o que você precisa em sua infra.
A ferramenta suporta vários provedores como AWS, DigitalOcean, Google Cloud e etc.
Dependendo do provedor que você usar é possível definir desde as configurações mais low-level (rede, firewall) até as mais high-level (banco de dados, load balancer e etc).

Ao descrever sua infra como código você elimina a necessidade de configurar tudo na mão e documentar toda essa configuração, pois a documentação é o código que você escreve.
Para saber o que será feito, basta rodar “terraform plan”. Para aplicar, “terraform apply” é o caminho.
Isso sem falar sobre as vantagens de ter esse código versionado, e ainda automatizar a atualização da infra num processo de deploy.

Eu estou começando a brincar com Terraform agora, e nesse artigo vamos criar uma infra básica, com duas maquininhas e um load balancer para distribuir a carga entre elas.
Para testar se essa coisa funciona, vamos pedir para o Terraform provisionar essas máquinas com o Apache.

Continue lendo “Terraform e DigitalOcean: Infra as code nunca foi tão simples!”

Usando o instalador automático do PostgreSQL autonomamente no Windows

Eu já precisei instalar o PostgreSQL no Windows, e o instalador não é nada acessível com o leitor de telas.
Daí pra instalar, eu baixava o zip, desempacotava e rodava o initdb, tinha que instalar o serviço na mão, etc e tal.
Se usarmos o instalador ele já resolve todas essas tretas.
Nesse pequeno post vou mostrar como usar o instalador pela linha de comando, sem depender da acessibilidade (ou falta dela) para usá-lo.

Continue lendo “Usando o instalador automático do PostgreSQL autonomamente no Windows”

Usando a biblioteca Respect Validation no Laravel

Por padrão, o Laravel vem com vários validadores. Mas sempre tem aquela aplicação que precisa de uma validação específica, seja CPF, CEP, cartão de crédito e etc.
Nesse pequeno texto vou mostrar como adicionar regras poderosas ao validador do Laravel, usando a biblioteca Respect Validation, a biblioteca de validação mais foda já criada para o PHP.

Continue lendo “Usando a biblioteca Respect Validation no Laravel”

Estou aprendendo Esperanto!

Saluton!
A alguns dias me cadastrei no Duolingo para praticar meu inglês e iniciar meus estudos de alemão.
O que chamou minha atenção foi o idioma esperanto estar presente na lista de idiomas ensinados, pois para mim esperanto significava uma língua que já foi útil um dia e hoje não é mais.

Santa ignorância!

Continue lendo “Estou aprendendo Esperanto!”

Um guia das funções de ordenação de arrays do PHP

O PHP possui várias funções para ordenação de array.
Como a linguagem tem um sério problema quando trata-se de padronização de argumentos, algumas dessas funções são meio chatas para se usar e podem trazer surpresas desagradáveis.
Nesse artigo vou apresentar todas essas funções, para que você nem eu tenhamos problemas com elas.

Continue lendo “Um guia das funções de ordenação de arrays do PHP”

Como foi meu ano de 2018

O ano de 2018 já acabou, mas o carnaval de 2019 ainda nem começou.
Sendo assim, ainda está em tempo de eu fazer minha retrospectiva, afinal, todo mundo sabe que no Brasil, o ano só começa depois do carnaval!

Esse é um exercício para que eu escreva coisas diferentes de public function happyNewYear ou “GAG D GAG D”.
Então se você quiser saber um pouco mais sobre mim e ver como vou me sair nessa empreitada, continue lendo!

Continue lendo “Como foi meu ano de 2018”

Git: Trabalhando em mais de uma branch simultaneamente com o comando git worktree

Há vezes em que estamos trabalhando numa branch e precisamos corrigir algo em outra sem perder o que foi feito na que estamos, e para isso o fluxo é simples:
“stash” na atual, checkout para a outra, modificar, commitar, depois checkout para a antiga, “stash pop”, continuar o trabalho.
Mas, apesar de ser simples, esse fluxo pode dar alguns problemas, como por exemplo fazer com que você perca tempo resolvendo conflitos na hora do “stash pop” dentre outras chateações.
Justamente para ajudar nisso existe o comando “git worktree”, que nos permite trabalhar em mais de uma branch por vez, cada uma em uma pasta separada.

Continue lendo “Git: Trabalhando em mais de uma branch simultaneamente com o comando git worktree”

MySQL: Como apagar registros duplicados e manter apenas um

A um tempo atrás tive problema num sistema que estava inserindo registros duplicados no banco e o relatório estava dando números completamente descabidos.
Além de resolver o bug no sistema tive de deletar as duplicatas, deixando apenas um registro.
Como fazer isso direto no MySQL sem ter que fazer um script que iria demorar um bom tempo para rodar, levando em conta o número de registros?

Pesquisando aqui e ali achei este artigo que apresenta várias consultas diferentes para resolver esse problema.
Criar tabelas temporárias e copiar os registros para a original, subselects e outras que vale apena ler para aprender.
Mas nessa dica vou mostrar apenas a query que eu usei, que é “curta e grossa” e a que julguei dar menos trabalho.

Continue lendo “MySQL: Como apagar registros duplicados e manter apenas um”