O essencial do comando mysqladmin, através de 18 exemplos Elias Praciano O essencial do mysqladmin, através de 18 exemplos O mysqladmin é uma ferramenta de linha de comando 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. Aqui vamos ver alguns dos comandos mysqladmin e situações em que são úteis, através de exemplos. 1. Como atribuir uma senha ao administrador MySQL (MySQL root) # mysqladmin -u root password minhanovasenha 2. Como alterar a senha, já atribuída, do administrador Um administrador responsável sabe que senhas precisam ser alteradas periodicamente. No MySQL, a alteração pode ser feita da seguinte forma: # mysqladmin -u root -psenhaantiga password 'senhanova' 3. Como verificar se o seu servidor está funcionando A frase « mysqld is alive » quer dizer que o seu servidor está 'vivo', em funcionamento. # mysqladmin -u root -p ping Enter password : mysqld is alive 4. Como determinar o status do seu servidor MySQL Com este comando você vai obter uma série de informações sobre o estado atual do servidor, 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 Uptime: 91381 Threads: 1 Questions: 620 Slow queries: 0 tables: 1 Open tables: 41 Queries per second avg: 0.006 Opens: 433 Flush A tabela, abaixo, mostra o significado de cada informação disponibilizada : Elias Praciano 1 O essencial do mysqladmin, através de 18 exemplos 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 5. Como verificar o status de todas as variáveis e valores do servidor MySQL # mysqladmin -u root -p extended-status Enter password : +------------------------------------------+-------------+ | Variable_name | Value | +------------------------------------------+-------------+ | Aborted_clients | 0 | | Aborted_connects | 5 | | Binlog_cache_disk_use | 0 | | Binlog_cache_use | 0 | | Threads_cached | 0 | | Threads_connected | 1 | | Threads_created | 1 | | Threads_running | 1 | | Uptime | 93149 | | Uptime_since_flush_status | 93149 | +------------------------------------------+-------------+ 6. Como ver toda as variáveis e valores do servidor MySQL mysqladmin -u root -p variables Elias Praciano 2 O essencial do mysqladmin, através de 18 exemplos 7. Como saber a versão instalada do MySQL O comando, a seguir, mostra a versão do servidor e mais alguns outros detalhes : # mysqladmin -u root -p version Enter password: mysqladmin Ver 8.42 Distrib 5.5.32, for debian-linux-gnu on i686 Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Server version 5.5.32-0ubuntu0.13.04.1 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: 1 day 2 hours 2 min 54 sec Threads: 1 tables: 41 Questions: 623 Slow queries: 0 Queries per second avg: 0.006 Opens: 433 Flush tables: 1 Open 8. Como ver todos os processos em execução no servidor MySQL # mysqladmin -u root -p processlist 9. Como criar um banco de dados no servidor MySQL Criar bancos de dados é uma tarefa simples e que pode ser feita na linha de comando de um terminal sem, necessariamente, 'entrar' no MySQL. No exemplo, abaixo, vamos criar um com o nome 'meubancodedados' : # mysqladmin -u root -p create meubancodedados Enter password : Feito isto, vamos entrar no MySQL e verificar o que foi feito : # mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 67 Server version: 5.5.32-0ubuntu0.13.04.1 (Ubuntu) Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective Elias Praciano 3 O essencial do mysqladmin, através de 18 exemplos owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | meubancodedados | | mysql | | performance_schema | | phpmyadmin | | test | +--------------------+ 6 rows in set (0.07 sec) mysql> 10. Como excluir um banco de dados Criou? Agora exclua... veja como # mysqladmin -u root -p drop meubancodedados Enter password: Dropping the database is potentially a very bad thing to do. Any data stored in the database will be destroyed. Do you really want to drop the 'meubancodedados' database [y/N] y Database "databasename" dropped Note que o sistema irá pedir a confirmação, tão logo você tenha autenticado – depois disto, ele exclui a tabela, conforme o pedido. 11. Como recarregar e atualizar os privilégios MySQL Aqui são basicamente 2 comandos: reload e refresh. O primeiro pede ao servidor que recarregue as tabelas dos privilégios; o segundo comando 'refresca' todas as tabelas e reabre o os arquivos de log. Veja como usar : # mysqladmin -u root -psuasenha reload; # mysqladmin -u root -psuasenha refresh 12. Como desligar o servidor MySQL de maneira segura O comando Linux para iniciar o servidor MySQL – que normalmente já sobe junto com o sistema – é o seguinte : Elias Praciano 4 O essencial do mysqladmin, através de 18 exemplos # /et c/init.d/mysql start Para desligar : # /et c/init.d/mysql stop Note que pode haver variações neste comando, de acordo com a distro que você estiver usando. Em algumas distros, a localização do comando é /etc/rc.d/init.d/mysql Por sorte, é possível desligar o servidor usando apenas os comandos do próprio servidor. Assim, para pará-lo # mysqladmin -u root -psuasenha shutdown 13. Como terminar um processo dormindo/hibernando (sleeping) no MySQL Client Primeiro, liste os processos (vamos nos lembrar do item 8) : # mysqladmin -u root -p processlist +--------+------+-----------+--------+---------+-------+-------+--------------------+ | Id | User | Host | db | Command | Time | State | Info | +--------+------+-----------+-------+---------+-------+-------+---------------------+ | 411665 | root | localhost | somedb | Sleep | 11388 | | NULL | | 412109 | root | localhost | somedb | Query | 0 | NULL | show full processlist| +--------+------+-----------+-------+---------+-------+-------+---------------------+ Note a coluna Command mostrando que um dos processos está em Sleep. Nesta mesma linha, na primeira coluna, você tem a Id 411665 deste processo – que é tudo que você precisa para executar o comando que segue : # mysqladmin -u root kill 411665 # mysqladmin -u root -p processlist +--------+------+-----------+--------+---------+-------+-------+--------------------+ | Id | User | Host | db | Command | Time | State | Info | +--------+------+-----------+-------+---------+-------+-------+---------------------+ | 412109 | root | localhost | somedb | Query | 0 | NULL | show full processlist| Apagar vários processos em um só comando é fácil. Basta informar todos Ids separados por vírgulas. 14. Flush – alguns comandos úteis e como usar A instrução flush tem algumas variantes que, em geral, limpam, recarregam ou atualizam vários caches internos e tabelas. Veja quais são : Elias Praciano 5 O essencial do mysqladmin, através de 18 exemplos 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 mysqladmin mysqladmin mysqladmin mysqladmin mysqladmin -u -u -u -u -u -u root root root root root root -p -p -p -p -p -p flush-hosts flush-tables flush-threads flush-logs flush-privileges flush-status 15. Como rodar múltiplos comandos mysqladmin de uma vez Sim. Você pode enviar ao servidor, em uma só linha, mais de um comando. Pode ser usado para criar várias tabelas de uma vez só. Veja como : # mysqladmin -u root -p create primeiro create segundo create terceiro Enter password: # mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 60 Server version: 5.5.32-0ubuntu0.13.04.1 (Ubuntu) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | meubancodedados | | mysql | | performance_schema | | phpmyadmin | Elias Praciano 6 O essencial do mysqladmin, através de 18 exemplos | primeiro | | segundo | | terceiro | | test | +--------------------+ 9 rows in set (0.01 sec) mysql> quit Agora, para exercitar, limpe a 'bagunça' : # mysqladmin -u root -p drop primeiro drop segundo drop terceiro 16. Como se conectar a um servidor remoto – vamos usar o seu próprio servidor como exemplo aqui : # mysqladmin -h 123.123.12.123 -u root -p 17. Como rodar um comando no servidor remoto MySQL Por exemplo, para ver a versão do servidor MySQL, use o seguinte comando : # mysqladmin -h 231.321.12.3 -u root -p version 18. Como ver as opções do comando mysqladmin e como usá-las Para satisfazer suas dúvidas, use o sistema de ajuda que já vem com o software : # mysqladmin –help ou # man mysqladmin Divirta-se ! Elias Praciano 7