FolioPierEstudos de TI

Ferramentas de linha de comando

Nota 36 de 41 · 4 min de leitura
Nesta página
  1. Onde ficam os programas
  2. Os programas que conversam com o servidor
  3. O serviço do Windows
  4. Os programas que leem os arquivos
  5. O registro dos comandos de manutenção
  6. A senha na linha de comando

Muitas tarefas de suporte no banco acontecem no Prompt de Comando do servidor, sem uma ferramenta gráfica: conferir se o serviço responde, ver as conexões, verificar todas as tabelas de um banco ou ler o log binário. O MySQL traz um conjunto de programas para essas tarefas, e cada um trabalha de um jeito. Alguns conversam com o servidor, e outros leem os arquivos diretamente.

Onde ficam os programas

Os programas ficam na subpasta bin da instalação do MySQL. O Prompt de Comando precisa estar nessa pasta, ou ter a pasta incluída no caminho de busca do Windows, para encontrá-los. A versão dos programas acompanha a versão do servidor instalado com eles, e as ferramentas da mesma versão do servidor evitam incompatibilidades, principalmente com servidores antigos, como o 5.1.

Os programas que conversam com o servidor

  • mysql --host=192.168.1.10 --user=root --password loja: abre a linha de comando do MySQL, conectada ao banco loja;
  • mysql --host=192.168.1.10 --user=root --password --execute="SHOW PROCESSLIST" loja: executa um único comando e volta ao Prompt;
  • mysqladmin --host=192.168.1.10 --user=root --password ping: confere se o servidor responde, com a resposta mysqld is alive;
  • mysqladmin --host=192.168.1.10 --user=root --password status: mostra o tempo de funcionamento, as conexões e outras contagens;
  • mysqlcheck --host=192.168.1.10 --user=root --password --check loja: verifica todas as tabelas do banco loja.

O mysqlcheck também repara, otimiza e atualiza as estatísticas, com as opções --repair, --optimize e --analyze, sempre dentro do que o engine de cada tabela oferece. A opção --auto-repair repara automaticamente as tabelas que a verificação apontar como danificadas, e por isso exige a mesma preservação de um reparo manual.

Na linha de comando do MySQL, a opção --default-character-set define o conjunto de caracteres da conexão. Sem ela, os nomes com acento podem aparecer trocados na tela, com os dados corretos no banco.

O serviço do Windows

O MySQL roda no Windows como um serviço, que pode ser parado e iniciado pela tela de serviços ou pelo Prompt de Comando:

  • net stop MySQL: para o serviço chamado MySQL;
  • net start MySQL: inicia o mesmo serviço.

O nome do serviço depende da instalação e aparece na tela de serviços. A parada pelo serviço encerra o MySQL de forma organizada, e o encerramento forçado do processo equivale a uma queda de energia para as tabelas MyISAM.

Os programas que leem os arquivos

  • myisamchk: verifica e repara os arquivos das tabelas MyISAM.
  • innochecksum: confere as somas de verificação das páginas de um arquivo do InnoDB.
  • mysqlbinlog: lê os arquivos do log binário e mostra as alterações registradas em forma de comandos SQL.

O myisamchk e o innochecksum trabalham com o serviço parado, porque o servidor e a ferramenta não podem usar os mesmos arquivos ao mesmo tempo. O mysqlbinlog lê os arquivos do log binário, por exemplo com o comando mysqlbinlog mysql-bin.000002, e é a ferramenta usada na recuperação até um horário.

O registro dos comandos de manutenção

Os comandos REPAIR TABLE, OPTIMIZE TABLE e ANALYZE TABLE ficam gravados no log binário, quando ele está ligado, e se repetem nos servidores que copiam as alterações deste. A palavra NO_WRITE_TO_BINLOG impede esse registro:

  • REPAIR NO_WRITE_TO_BINLOG TABLE vendas;

O registro controla apenas a repetição do comando. Se um reparo descartou linhas em um servidor, a diferença entre os servidores continua a existir.

A senha na linha de comando

A opção --password sem valor faz o programa pedir a senha. A senha escrita na própria linha de comando fica no histórico do Prompt e pode aparecer na lista de processos do Windows, e as versões novas avisam sobre esse risco a cada uso.

No suporte

Antes de usar uma ferramenta, convém saber se ela conversa com o servidor ou lê os arquivos diretamente. As ferramentas que leem os arquivos só funcionam com segurança com o serviço parado. O mysqladmin ping é o teste mais rápido para saber se o serviço do MySQL responde.

Para guardar

  • Os programas ficam na subpasta bin da instalação e acompanham a versão do servidor.
  • O mysql, o mysqladmin, o mysqlcheck e o mysqldump conversam com o servidor.
  • O myisamchk e o innochecksum leem os arquivos e exigem o serviço parado.
  • O mysqlbinlog lê o log binário e serve à recuperação até um horário.
  • A senha escrita na linha de comando fica exposta no histórico.
O comando mysqladmin ping respondeu mysqld is alive, mas o sistema de uma estação não conecta. O banco está funcionando?

O serviço está respondendo, mas isso não garante a conexão da estação. O teste feito no próprio servidor não passa pela rede, nem pela conta e pelas permissões do sistema. A investigação segue pelo caminho entre a estação e a porta 3306 e pelo erro que a estação recebe.

Por que o myisamchk não pode ser usado com o serviço do MySQL em funcionamento?

Porque o myisamchk altera os arquivos da tabela diretamente, enquanto o servidor também lê e grava esses arquivos. Os dois trabalhando ao mesmo tempo podem agravar o dano. A ferramenta é usada com o serviço parado.

Publicado a partir do Obsidian · FolioPier