O mysqladmin é uma ferramenta que vem junto com a instalação do servidor MySQL e é usada por administradores de bancos de dados para realizar algumas operações básicas, tais como, configurar a conta do administrador (root), mudar sua senha, monitorar processos, lidar com privilégios, verificar as condições do servidor, criar rapidamente novos bancos de dados etc — tudo na linha de comando.
Aqui vamos ver alguns dos comandos mysqladmin e situações em que são úteis, através de exemplos.
mysqladmin -u root password minhanovasenha
Como alterar a senha, já atribuída, do administrador
Um administrador responsável sabe que senhas precisam ser alteradas periodicamente. O mysqladmin, permite fazer isto rapidamente, diretamente no terminal. No exemplo que segue, tenha em mente que senhaantiga e senhanova são o que seus nomes dizem e você deve usar os seus próprios valores. Use as aspas, onde tiver que usar:
mysqladmin -u root -psenhaantiga password 'senhanova'
A ideia é determinar se o servidor está “vivo”. A frase «mysqld is alive» responde a esta questão. Use o seguinte comando:
mysqladmin -u root -p ping
Mysqld is alive - terminal
Vocẽ já sabe que ele “está vivo”. Agora, deseja obter mais informações sobre como ele está funcionando, entre as quais, o tempo em que ele está ‘no ar’, a quantidade de tabelas abertas por usuários, o tempo de resposta médio das queries etc.
mysqladmin -u root -pminhasenha status
mysqld status
Informação Descrição
Uptime Tempo (em segundos) em que o servidor está funcionando,
desde a última vez em que foi carregado.
Threads O número total de clientes conectados ao servidor.
Questions O número total de requisições a que o servidor atendeu
desde que foi carregado.
Slow queries Total de queries cujo tempo de execução ultrapassou o valor
definido pela variável long_query_time (veja o arquivo de
configuração).
Opens Número total de tabelas abertas pelo servidor.
Flush tables A quantidade de vezes em que tabela foi atualizada.
Open tables O número total de tabelas abertas no momento.
O comando,
mysqladmin -u root -p extended-status
dará um resultado parecido com este:
mysqladmin mysql extended status
mysqladmin -u root -p variables
O comando, a seguir, mostra aversão do seu servidor MySQL, entre outros detalhes:
mysqladmin -u root -p version
O resultado vai ser parecido com este:
Como ver a versão do mysql
Fique atento para a linha Server version. No caso, aqui, trata-se da versão 5.5.32-0ubuntu0.13.04.1.
Este comando mostrará uma (possivelmente) longa relação de processos em execução no seu sistema.
mysqladmin -u root -p processlist
Esta tarefa é relativamente simples e, com o mysqladmin, pode ser realizada com uma única linha de comando. Ou seja, você não precisa “entrar” no MySQL para criar um banco de dados.
No exemplo abaixo, vamos criar um banco de dados chamado o_condado_db (eu sei, estou exagerando na leitura de Tolkien); depois de criado o banco, vamos entrar no MySQL e vamos pedir para mostrar os bancos de dados existentes. Acompanhe:
mysqladmin -u root -p create o_condado_db
mysql -u root -p
show databases
O resultado do comando show databases, executado dentro do cliente MySQL, deve ser parecido com o que segue:
mysql show databases
Para sair do MySQL, rode os comandos exit ou quit.
Vamos aprender a usar o drop para remover um banco de dados já criado:
mysqladmin -u root -p drop o_condado_db
O sistema pedirá para que a ação seja confirmada, antes de executar a remoção.
Aqui temos basicamente 2 comandos: reload e refresh. O primeiro pede ao servidor que recarregue as tabelas dos privilégios; o segundo atualiza todas as tabelas e reabre os arquivos de log. Veja como fazer:
mysqladmin -u root -psuasenha reload
mysqladmin -u root -psuasenha refresh
Normalmente, o servidor MySQL já “sobe” junto com o sistema. Ou seja, não precisa ser iniciado. Mas, no caso de você precisar, use o seguinte comando para dar início à sua execução:
/etc/init.d/mysql start
Para desligar:
/etc/init.d/mysql stop
Tenha em mente que há variações na maneira de executar este comando entre as distros. Em algumas, o comando mysql vai estar em /etc/rc.d/init.d/
Enfim, você pode desligar o servidor MySQL da seguinte forma também:
mysqladmin -u root -p shutdown
Como terminar um processo que esteja dormindo/hibernando (sleeping) no cliente MySQL Client
Você vai precisar saber o ID do processo a ser terminado, para fazer isto. Portanto, vai precisar executar um comando que liste os processos em execução no seu servidor. De posse do ID, basta informá-lo ao comando de interrupção de processos. Veja como:
mysqladmin -u root -p processlist
O MySQL vai te devolver uma lista. Localize a ID do processo que você deseja terminar, na primeira coluna. Para interrompê-lo, use o seguinte comando (substituindo a variável num_processo pelo número do processo que você deseja terminar):
mysqladmin -u root kill num_processo
Feito isto, peça novamente a lista de processos para ver se tudo deu certo.
É possível apagar vários processo com um só comando. Informe todas as IDs de processos que você deseja terminar, separadas por vírgulas:
mysqladmin -u root kill num_processo1, num_processo2, num_processo3
Fácil, né?
Como organizar, fazer a faxina, com o mysqladmin e flush
A instrução flush tem uma série de variantes que limpam, recarregam, atualizam os caches internos e as tabelas. Veja quais são e o que fazem:
Comando Descrição
flush-hosts Limpa todas as informações relativas ao host do host cache.
flush-tables Atualiza todas as tabelas.
flush-threads Atualiza o cache das threads.
flush-logs Atualiza todas as informações nos logs.
flush-privileges Recarrega as tabelas de privilégios.
flush-status Limpa as variáveis de status do sistema.
Como usar:
mysqladmin -u root -p flush-hosts
mysqladmin -u root -p flush-tables
mysqladmin -u root -p flush-threads
mysqladmin -u root -p flush-logs
mysqladmin -u root -p flush-privileges
mysqladmin -u root -p flush-status
Como executar múltiplos comandos em uma só linha mysqladmin
Sim. Você pode executar várias tarefas com apenas uma linha de comando mysqladmin. Veja como criar 3 bancos de dados (databases) em uma tacada só:
mysqladmin -u root -p create primeiro create segundo create terceiro
Dê a sua senha e entre no cliente MySQL, para ver o trabalho feito:
mysql -u root -p
Dentro do MySQL, liste as tabelas:
show databases
mysql show databases comando
Agora, vamos excluir os bancos de dados com o mysqladmin. Portanto digite exit;, para sair do MySQL.
Da linha de comando, do shell, exclua os bancos com drop:
mysqladmin -u root -p drop primeiro drop segundo drop terceiro
Como se conectar a um servidor remoto
Vamos usar o seu próprio servidor MySQL, aqui, para exemplificar. Muita gente se conecta a um servidor remoto MySQL via SSH.
Com o mysqladmin, você pode se conectar remotamente e executar um comando (ou vários) e voltar pro seu terminal:
mysqladmin -h 127.0.0.1 -u root -p version
mysqladmin conexão remota
Como obter ajuda para o mysqladmin
Enfim, vamos ver como obter ajuda para usar o mysqladmin. Use o manual do sistema:
man mysqladmin
ou a ajuda do próprio comando:
mysqladmin -?
Social