mytop, para monitorar seu MySQL

O mytop é um clone do comando top para o MySQL. Ele é usado para monitorar a performance do seu banco, sem precisar de softwares caros, complexos ou pesados. Ele é escrito em Perl e abaixo está um mini-roteiro de como instalá-lo – no meu caso, Mac OS Mountain Lion.



Antes de compilar o mytop é necessário instalar o pré-requisito DBD-Mysql. No terminal, digite:
  1. perl -MCPAN -e 'shell'

Em seguida, execute:

  1. get DBD::mysql
  2. exit

Ao sair do prompt do cpan, digite:

  1. cd ~/.cpan/build/DBD-mysql-<version>/
  2. perl Makefile.PL--testuser='mysql_user_name' --testpassword='mysql_passwd'
  3. make
  4. make test
  5. make install

Faça o download do pacote porque já é hora de compilá-lo:

  1. tar -zxvf mytop-<version>.tar.gz
  2. cd mytop-<version>
  3. perl Makefile.PL
  4. make
  5. make test
  6. make install

Execute o mytop pela primeira vez:

  1. mytop

Pode acontecer o seguinte erro:

  1. Error in option spec: "long|!"

Caso esse erro aconteça, é necessário editarmos o mytop. Abra o arquivo – aqui instalado em /usr/local/bin e edite a linha 159:

  1. "long|long_nums|l!" => \$config{long_nums},

Além disso, substitua as linhas 958 e 959 pelas linhas seguintes:

  1. if ($host)
  2.     {
  3.         $host =~ s/^([^.]+).*/$1/;
  4.         $thread->{Host} = $host;
  5.     }

Usando o mytop

Você pode monitorar seu banco passando as configurações de conexão via shell:

  1. mytop -u 'seuusuario' -p 'suasenha' -h 127.0.0.1 -d 'seubanco'

…ou pode criar um arquivo .mytop em sua pasta de usuários, como o abaixo:

  1. user=seuusuario
  2. pass=suasenha
  3. host=127.0.0.1
  4. db=seubanco

Rails e cia no Snow Leopard

Fiz uma instalação nova do Snow Leopard no meu MacBook e ao migrar os dados do Time Machine, do Leopard, algumas coisas pararam de funcionar. Resolvi então escrever para complementar meu post anterior sobre o assunto.

Xcode

ANTES DE MAIS NADA, instalei o Xcode. Ele está junto no DVD do Snow Leopard, na pasta de Instalações Opcionais.

Rails

O Snow Leopard já vem com duas versões do Rails já instaladas: 2.2.2 e 1.13.6. Caso queira atualizar seu ambiente:
Continue reading

Alternativas ao PHPMyAdmin

O PHPMyAdmin é quase uma unanimidade em gerenciadores de banco de dados MySQL. Mas existe vida além dele. Vamos lá:

SQL Buddy

O SQL Buddy é uma alternativa bacana, com bonita interface e traduzido para vários idiomas, incluindo português.

sqlbuddy

Adminer

Já o Adminer é um app em php feito em 1(!) único arquivo. Possui diversas traduções (nenhuma ainda em português) mas é altamente indicado o mantermos em nossos servidores para uma rápida manutenção.

adminer

Descubra de onde vem seus usuários com SQL

Tenho no autosimulado algumas queries para acompanhar a evolução dos usuários do site. Periodicamente, vejo o número de usuários criados dia-a-dia no site e o número de testes realizados por esses usuários.

Relacionado as essas queries, vi uma interessante consulta para agrupar o número de usuários por domínio de email, através da função substring. Confira:

O resultado, quando aplicado ao banco de dados do autosimulado:

  1. +-------+----------------+
  2. | Total | Domain         |
  3. +-------+----------------+
  4. |   644 | hotmail.com    |
  5. |   116 | gmail.com      |
  6. |    98 | yahoo.com.br   |
  7. |    37 | bol.com.br     |
  8. |    33 | ig.com.br      |
  9. |    15 | uol.com.br     |
  10. |    11 | oi.com.br      |
  11. |    10 | yahoo.com      |
  12. |     9 | hotmail.com.br |
  13. |     8 | terra.com.br   |
  14. +-------+----------------+
  15. 10 rows in set (0.00 sec)

Edge Rails no Windows Vista

Uma das mudanças do Rails 2.2 é não inclusão do bundle do MySQL, responsável por conectar seu projeto ao banco. Mês passado eu postei sobre isso e hoje, ao tentar instalar o gem do MySQL no Windows Vista de um co-worker, me deparei com um problema na DLL libmySQL.dll.

A solução encontrada foi copiar esse arquivo (geralmente em C:Program FilesMySQLMySQL Server 4.1bin) para a pasta bin do Ruby (por exemplo: C:rubybin).

Que fique documentado ;)