Como instalar o Piwigo no Linux

O Piwigo é um software para criar e gerenciar galerias e álbuns de fotos, voltado para profissionais de fotografia e pessoas comuns (eu!!!) — que apenas querem ter um espaço seu, para guardar suas imagens.

Desenvolvedores e usuários trabalham junto, para fazer do Piwigo um app (de código aberto) cada vez melhor.

Softwares de galerias de foto são a solução ideal para quem deseja publicar suas imagens — do seu jeito e ter total liberdade sobre elas.
Uma empresa pode deixar todo o seu banco de imagens disponível interna e/ou externamente através da galeria online.
O Piwigo permite editar os níveis de privacidade das fotos individualmente ou de álbuns inteiros.

Quais são os requisitos para instalar e rodar o Piwigo

O aplicativo é muito “democrático” e pode ser instalado em uma gama variada de configurações. Segue os requisitos básicos, de acordo com a documentação oficial:

  • Um servidor web Apache. Mas também pode ser Lighttpd ou Nginx.
  • Um servidor de banco de dados MySQL 5 ou MariaDB.
  • Suporte a PHP 5.2.
  • A suíte de aplicativos ImageMagick ou GD.
  • 30 Mb para instalar o app. Mas você vai precisar bem mais, para armazenar suas fotos, claro.

Instalação com um único clique

Alguns provedores de hospedagem, como o DreamHost, possuem um painel de controle a partir do qual é possível instalar com um clique (one-click installs) dezenas de aplicativos web.
piwigo one-click install
Se você possui uma conta em um provedor de hospedagem Linux, então os requisitos estão, provavelmente, todos preenchidos.

Se o seu provedor oferece o Piwigo como opção de instalação simplificada — e você não se importa de usar uma versão desatualizada, porém estável, sugiro usar este meio para instalar o software.

Como instalar a versão mais atual do Piwigo direto do site oficial

Usuários mais avançados, contudo, podem preferir uma versão mais atualizada do software, mesmo que tenham que “meter a mão na massa” para isto.
Neste caso, você vai ter que fazer o download do site oficial e instalar por conta própria — o que inclui configurar o seu banco de dados.
Este é o cenário onde fiz a minha instalação:

  • Servidor Ubuntu 14.04 LTS.
  • MySQL 5.5.
  • PHP 7.0
  • Apache web server —. Se você não tiver um servidor LAMP (Linux, Apache, PHP e MySQL) instalado, leia este post.

Este artigo, parte do pressuposto de que você já tem instalado um servidor web, com suporte a PHP e MySQL.
Vou mostrar como proceder através do uso do aplicativo netinstall — por que ele é pequeno e leve e baixa apenas o que é preciso para a nossa configuração.
Você pode encontrá-lo neste endereço.
piwigo netinstall
Para mandar o netinstall para o servidor em que você fará a instalação, use o scp ou baixe-o direto com o comando wget, na pasta em que você deseja instalar o Piwigo:


wget http://piwigo.org/download/dlcounter.php?code=netinstall -O piwigo-netinstall.php


--2017-06-06 14:55:19--  http://piwigo.org/download/dlcounter.php?code=netinstall
Resolving piwigo.org (piwigo.org)... 87.98.147.22
Connecting to piwigo.org (piwigo.org)|87.98.147.22|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 15282 (15K) [application/zip]
Saving to: ‘piwigo-netinstall.php’

piwigo-netinstall.php                 100%[========================================================================>]  14,92K  83,4KB/s    in 0,2s    

2017-06-06 14:55:23 (83,4 KB/s) - ‘piwigo-netinstall.php’ saved [15282/15282]

Daqui pra frente, o processo segue via web. Acesse a página em que você instalou o netinstall: http://meusite.com.br/galeria/.
Para conseguir concluir o processo, você precisa ter em mãos (ou de memória) as seguintes informações:

  1. O hostname do servidor MySQL ou MariaDB.
  2. O nome do banco de dados.
  3. Um nome de usuário do banco de dados.
  4. A senha deste usuário.
  5. Um prefix predefinido para a tabela de dados do Piwigo, o que irá facilitar a organização do aplicativo dentro do banco de dados.

Se você não tem estas informações, peça ao administrador da rede ou do servidor para te ajudar.
Abra um navegador e acesse o endereço para o qual você copiou o arquivo piwigo-netinstall.php.
Na primeira tela da instalação, é possível indicar o idioma da instalação (1), uma outra pasta ou diretório para instalar o app e, por fim, começar o processo (3).
piwigo install
Na tela que segue, já será necessário fornecer aquelas informações, de que falamos há pouco.
Preencha com toda a atenção.
piwigo install
Abaixo destas informações preencha os campos para a criação da conta do webmaster/administrador da galeria de fotos.
Prossiga.
piwigo install
Na outra tela, o sistema informa se tudo deu certo.
Se houver alguma mensagem de erro, volte à tela anterior e verifique cuidadosamente, meticulosamente, cada informação dada.
Se tudo correu bem, o programa de instalação irá baixar os arquivos de que precisa, criar as pastas e organizar o banco de dados para finalizar a sua galeria.
O Piwigo oferece um tour, logo após sua primeira tela de apresentação.
Vale a pena seguir, para começar a entender o funcionamento da galeria.
piwigo install tour

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Como instalar um servidor LAMP no openSUSE

Um servidor Linux, com serviços Apache, banco de dados MySQL ou MariaDB e a linguagem de scripts PHP é um ambiente muito comum para desenvolvedores web, administradores de servidores web etc.
Há variações para esta configurações.
Alguns administradores ou desenvolvedores preferem usar outros servidores web, que não o Apache. Também podem optar por outro banco de dados que não o MySQL — neste caso, o PostreSQL e o MariaDB são bastante comuns.

A tendência atual de distros como openSUSE, Ubuntu, Fedora, entre outras, é a substituição do MySQL pelo MariaDB

Como opção ao PHP, surgem o Python e o Perl, entre outros.
Neste texto, vamos nos ater ao LAMP tradicional, em uma maquina openSUSE Leap 42.1 — até por que ele é muito fácil de instalar.
Se quiser saber mais sobre como verificar a versão do openSUSE em uso no seu sistema, leia este texto.
Se, posteriormente, quiser acrescentar suporte ao Perl, Python ou Ruby on Rails, isto pode ser feito de modo muito natural.

Como encontrar o padrão de instalação LAMP no openSUSE

A ferramenta zypper, de gestão de pacotes, permite encontrar rapidamente qualquer coisa que esteja dentro dos repositórios do sistema operacional.
Se quiser saber mais sobre o zypper, leia este texto.
No exemplo que segue, a gente começa com um refresh, para sincronizar o nosso cache local com os repositórios remotos. Em seguida faremos uma busca, com o comando search, pelos padrões (patterns) que contenham a string “lamp”. Veja abaixo:

sudo zypper update
zypper search --type pattern lamp
Carregando dados de repositório...
Lendo os pacotes instalados...

S | Nome        | Resumo                   | Tipo  
--+-------------+--------------------------+-------
  | lamp_server | Servidor Internet e LAMP | padrão

Quer obter mais informações sobre o pattern lamp_server?
Use o parâmetro info:

zypper info -t pattern lamp_server
.
Carregando dados de repositório...
Lendo os pacotes instalados...


Informação para padrão lamp_server:
-----------------------------------
Repositório: Repositório principal de atualização
Nome: lamp_server
Versão: 20150918-12.1
Arquitetura: x86_64
Fornecedor:openSUSE
Instaladas: Não
Visível ao Usuário: Sim
Resumo:Servidor Internet e LAMP
Descrição: 
  Programa para configurar um servidor de Internet que possa lidar com conteúdo
  estático, dinâmico e interativo (como uma loja da Internet). Isso inclui o
  servidor HTTP Apache, o sistema de gerenciamento de banco de dados MySQL e
  linguagens de script como PHP, Python, Ruby on Rails ou Perl.
Conteúdo:

S | Nome                          | Tipo    | Dependência
--+-------------------------------+---------+------------
  | apache2                       | package |            
  | apache2-doc                   | package |            
  | apache2-example-pages         | package |            
  | apache2-mod_perl              | package |            
  | apache2-mod_php5              | package |            
  | apache2-mod_python            | package |            
  | apache2-prefork               | package |            
  | mariadb                       | package |            
i | patterns-openSUSE-base        | package |            
  | patterns-openSUSE-lamp_server | package |            
  | php5-ctype                    | package |            
  | php5-dom                      | package |            
  | php5-iconv                    | package |            
  | php5-mysql                    | package |            
  | yast2-http-server             | package |  

Observe que na relação de pacotes a ser instalada, o banco de dados MariaDB é default nesta versão do openSUSE.
Para, enfim, fazer a instalação deste pattern, use o comando install:

sudo zypper install -t pattern lamp_server
root's password:
Carregando dados de repositório...
Lendo os pacotes instalados...
Resolvendo dependências de pacote...

The following 32 NEW packages are going to be installed:
  apache2 apache2-doc apache2-example-pages apache2-mod_dnssd apache2-mod_perl
  apache2-mod_php5 apache2-mod_python apache2-prefork apache2-utils libapr1
  libapr-util1 libmysqlclient18 libmysqlclient_r18 libmysqlcppconn7
  libreoffice-base-drivers-mysql mariadb mariadb-client mariadb-errormessages
  patterns-openSUSE-lamp_server perl-Linux-Pid php5 php5-ctype php5-dom
  php5-iconv php5-json php5-mysql php5-pdo php5-sqlite php5-tokenizer
  php5-xmlreader php5-xmlwriter yast2-http-server

The following NEW pattern is going to be installed:
  lamp_server

The following 18 recommended packages were automatically selected:
  apache2 apache2-doc apache2-example-pages apache2-mod_perl apache2-mod_php5
  apache2-mod_python apache2-prefork mariadb php5-ctype php5-dom php5-iconv
  php5-json php5-mysql php5-sqlite php5-tokenizer php5-xmlreader php5-xmlwriter
  yast2-http-server

32 novos pacotes para instalado.
Tamanho total do download: 22,5 MiB. Já em cache: 0 B. Após a operação, 161,3
MiB adicionais serão utilizados.
deseja continuar? [s/n/? mostrar todas as opções] (s): 

Não se esqueça de ler atenciosamente o texto que segue o processo de instalação e confirmar aonde for apropriado.

Pós instalação

Antes de dar o trabalho por encerrado, vamos testar a instalação.
Comece por verificar o estado atual do (MySQL) MariaDB:

sudo rcmysql status
mysql.service - MySQL server
   Loaded: loaded (/usr/lib/systemd/system/mysql.service; disabled)
   Active: inactive (dead)

Ok. As palavras disabled e dead — respectivamente, “desabilitado” e “morto” — não são muito animadoras.
Então vamos colocar o banco de dados no ar!

sudo rcmysql start
sudo rcmysql status

Agora, a mensagem é outra:

mysql.service - MySQL server
   Loaded: loaded (/usr/lib/systemd/system/mysql.service; disabled)
   Active: active (running) since Sat 2016-05-14 19:42:27 BRT; 4s ago
  Process: 4524 ExecStartPost=/usr/lib/mysql/mysql-systemd-helper wait default (code=exited, status=0/SUCCESS)
  Process: 4514 ExecStartPre=/usr/lib/mysql/mysql-systemd-helper upgrade default (code=exited, status=0/SUCCESS)
  Process: 4423 ExecStartPre=/usr/lib/mysql/mysql-systemd-helper install default (code=exited, status=0/SUCCESS)
 Main PID: 4523 (mysqld)
   CGroup: /system.slice/mysql.service
           └─4523 /usr/sbin/mysqld --defaults-file=/etc/my.cnf --user=mysql

May 14 19:42:26 linux-ewci.suse mysql-systemd-helper[4523]: 160514 19:42:26 [Note] InnoDB: Initializing buffer pool, size = 128.0M
May 14 19:42:26 linux-ewci.suse mysql-systemd-helper[4523]: 160514 19:42:26 [Note] InnoDB: Completed initialization of buffer pool
May 14 19:42:26 linux-ewci.suse mysql-systemd-helper[4523]: 160514 19:42:26 [Note] InnoDB: Highest supported file format is Barracuda.
May 14 19:42:26 linux-ewci.suse mysql-systemd-helper[4523]: 160514 19:42:26 [Note] InnoDB: 128 rollback segment(s) are active.
May 14 19:42:26 linux-ewci.suse mysql-systemd-helper[4523]: 160514 19:42:26 [Note] InnoDB: Waiting for purge to start
May 14 19:42:26 linux-ewci.suse mysql-systemd-helper[4523]: 160514 19:42:26 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.26-74.0 started; log sequence number 1616707
May 14 19:42:26 linux-ewci.suse mysql-systemd-helper[4523]: 160514 19:42:26 [Note] Server socket created on IP: '::'.
May 14 19:42:26 linux-ewci.suse mysql-systemd-helper[4523]: 160514 19:42:26 [Note] /usr/sbin/mysqld: ready for connections.
May 14 19:42:26 linux-ewci.suse mysql-systemd-helper[4523]: Version: '10.0.22-MariaDB'  socket: '/var/run/mysql/mysql.sock'  port: 3306  openSUSE package
May 14 19:42:27 linux-ewci.suse mysql-systemd-helper[4524]: MySQL is alive

Ajuste a senha do root no MariaDB

Caso você não saiba, o root do banco de dados MySQL/MariaDB é diferente do root do Linux.
Use o seguinte comando, no terminal:

/usr/bin/mysqladmin -u root password 'nova-senha'

Substitua ‘nova-senha’ pela sua senha.

Como determinar a versão do PHP no servidor

É possível obter informações sobre a versão do PHP em um servidor remoto, a partir de um simples terminal.
Vou mostrar como fazer isto, do console do Linux e, caso você queira saber, vou mostrar como dificultar que estranhos obtenham esta informação do seu servidor.
php logo elephpant
Ocultar a versão do PHP a requisições remotas, pode ser útil para evitar que visitantes maliciosos conheçam a que vulnerabilidades o seu site pode estar exposto.
Pode ser recomendado como um primeiro passo básico (de muitos outros) para tornar o seu servidor mais seguro.
Como se trata de segurança por obscuridade, recomenda-se não ficar dependente exclusivamente deste método.

Como obter a versão do PHP, de um servidor remoto

Tal como visto no texto Como descobrir a versão do Apache em execução, é possível obter informações diversas de um servidor remoto com o uso do comando HEAD.
Veja como obter informações sobre o PHP, no servidor:

HEAD http://localhost/sites/ial/site/index.php

Observe as informações na última linha:

200 OK
Connection: close
Date: Wed, 11 Mar 2015 20:40:37 GMT
Server: Apache
Content-Type: text/html
Client-Date: Wed, 11 Mar 2015 20:40:37 GMT
Client-Peer: 127.0.0.1:80
Client-Response-Num: 1
X-Powered-By: PHP/5.5.9-1ubuntu4.6

É importante indicar uma página .php na linha de comando do HEAD, para obter um resultado significativo.
Este é o banner que o (meu) PHP adiciona às informações do sistema: X-Powered-By: PHP/5.5.9-1ubuntu4.6.

Como determinar a localização do arquivo php.ini

Vamos ao arquivo de configuração, para ajustar a diretiva adequada.
A localização do arquivo de configuração do PHP php.ini pode variar em função do sistema operacional em uso (Linux, Unix, Windows, MacOS etc.)
No Ubuntu 14.04 LTS e em outras distrbuições Linux baseadas no Debian o arquivo de configuração a ser alterado é /etc/php5/apache2/php.ini.
Se você tiver dúvidas, uma maneira eficiente de encontrar o arquivo de configuração do PHP é usar o comando locate com o comando grep. Veja:

locate php.ini | grep apache

O meu foi encontrado aqui:

/etc/php5/apache2/php.ini
The elephant inside the snake  - O elefante dentro da cobra - em o pequeno príncipe
Tentar encontrar o arquivo de configuração do PHP, me fez pensar no “O Pequeno Príncipe”.

Como desabilitar a exibição do banner de informações do PHP no servidor

Uma vez determinado o seu arquivo de configuração php.ini, faça uma cópia de segurança, antes de alterá-lo:

sudo cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.original

A seguir, abra o arquivo e localize a linha que contém expose_php On e altere-a para expose_php Off. Salve o arquivo e feche o editor.
De volta ao terminal, reinicie o Apache:

sudo apachectl stop
sudo apachectl start

Se o Apache estiver exibindo a mensagem “Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName”, leia este artigo, depois.


Agora, faça o teste:

HEAD http://localhost/sites/ial/site/index.php

Observe as informações na última linha:

200 OK
Connection: close
Date: Wed, 11 Mar 2015 20:40:37 GMT
Server: Apache
Content-Type: text/html
Client-Date: Wed, 11 Mar 2015 20:40:37 GMT
Client-Peer: 127.0.0.1:80
Client-Response-Num: 1

Você pode obter mais informações sobre a configuração do PHP, no manual online: php.net/manual/pt_BR/

Como ocultar a versão do Apache no servidor

Neste post vou mostrar como alterar a configuração do Apache para não mostrar mais sua versão a requisições remotas. Esta é uma das várias medidas para fortalecer a segurança de um servidor web.
apache cadeado segurança
No artigo Como descobrir a versão do Apache em execução, mostro como obter informações sobre um servidor web remoto (e local). Neste artigo vou mostrar como inibir a exibição deste “excesso” de informações a pessoas estranhas.
Ninguém precisa saber que versão do Apache você está executando; que módulos você tem rodando e quais são as suas vulnerabilidades (baseado na versão do servidor web em execução).
Para ficar claro, o procedimento não protege contra vulnerabilidades existentes — mas dificulta a vida de quem deseja obter informações sobre o seu sistema.
Nos tópicos, a seguir, vou motrar como alterar as diretrizes ServerTokens e ServerSignature dentro do arquivo de configuração do Apache, para ser o mais objetivo possível. Depois vou explicar um pouco melhor a função delas.

Como configurar o Apache

Antes de se aventurar a alterar um arquivo do sistema, faça uma cópia de segurança dele:

sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.original

Em seguida abra o arquivo com o seu editor de texto favorito (eu vou usar o nano):

sudo nano /etc/apache2/apache2.conf

Agora altere (ou inclua) as diretrizes a que me referi acima para os seguintes valores:

ServerTokens ProductOnly
ServerSignature Off

Agora, reinicie o Apache:

sudo apachectl stop
sudo apachectl start

Agora faça um teste:

HEAD http://localhost

Altere o comando acima para os valores adequados à sua situação.
Note que no meu resultado, na 6a. linha, o nome do servidor é exibido apenas como Apache. Sua versão não é divulgada, nem tampouco o nome do sistema operacional.

200 OK
Connection: close
Date: Tue, 10 Mar 2015 21:17:25 GMT
Accept-Ranges: bytes
ETag: "2cf6-50fc9c4fbc26b"
Server: Apache
Vary: Accept-Encoding
Content-Length: 11510
Content-Type: text/html

Se quiser aumentar um pouco mais os seus conhecimentos, veja os testes descritos neste artigo.

O que é ServerTokens

A diretriz ServerTokens controla quando o cabeçalho (header) de resposta do servidor deverá, ou não, incluir uma descrição genérica do tipo de sistema operacional instalado — bem como informações sobre módulos compilados e disponíveis para uso.
Dentro do arquivo de configurações /etc/apache2/apache2.conf, esta diretriz pode ter os seguintes valores:

  • ProductOnly ou Prod — Diz para o Apache mostrar apenas o nome produto (que é o software de servidor web): Apache.
  • Major — Permite mostrar parcialmente a versão do Apache. Por exemplo: Apache/2
  • Minor — Permite ao Apache mostrar um pouco mais de sua versão. Por exemplo: Apache/2.4
  • Minimal ou Min — Torna o Apache ainda mais verboso sobre a sua versão. Por exemplo: Apache/2.4.12
  • OS — Vai além da exibição do número completo da versão do Apache e dá uma dica do sistema operacional usado no servidor. Por exemplo: Apache/2.4.12 (Unix)
  • Full ou padrão (sem parâmetros) — Mostra outros dados, como a versão do OPenSSL. Por exemplo: Apache/2.4.12 (Unix) OpenSSL/1.0.1l

Ajustar a diretiva ServerTokens para menos do que minimal não é recomendado pela documentação oficial do Apache — uma vez que dificulta encontrar erros (interoperacionais) no produto.
Além disto, a “obscuridade” não é política de segurança ideal. O correto é manter os seus servidores atualizados e ficar “ligado” no que tange eventuais descobertas de falhas de segurança

A diretriz ServerSignature do Apache

Dependendo do seus parâmetros de configuração, esta diretriz permite exibir um rodapé nos documentos gerados pelo servidor web (mensagens de erro, mod_proxy, a listagem do diretório ftp, saída do mod_info etc.)
O motivo para deixar esta opção ligada é que, em uma cadeia de proxies, pode ficar difícil dizer em qual dos servidores houve um erro.
A opção padrão é Off.
As outras opções são:

  • On — Adiciona uma linha com o número da versão do servidor e o valor de ServerName do host virtual.
  • Email — cria uma referência mailto: ao ServerAdmin, que permite a um visitante contatar o administrador do documento em exibição.

Após a versão 2.0.44, do Apache, a informação sobre a versão do servidor passou a ser controlada pelo ServerTokens.
Este site tem outros artigos sobre Apache, MySQL, PHP e configuração de servidores. Use o campo de busca, no canto superior direito para descobrir mais textos interessantes para você.

Referências

Leia a documentação oficial do Apache, sobre o assunto deste post, aqui.

MySQL – 17 exemplos práticos de aplicação do comando mysqladmin

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.

LEIA MAIS
Como atribuir uma senha ao administrador MySQL – (MySQL root)
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'
Como verificar se o servidor está em execução

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

Como determinar o status do seu servidor MySQL

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.
Como verificar o status de todas as variáveis e valores do servidor MySQL

O comando,

mysqladmin -u root -p extended-status

dará um resultado parecido com este:
mysqladmin mysql extended status

Como ver todas as variáveis e valores do servidor MySQL
mysqladmin -u root -p variables
Como saber a versão instalada do MySQL

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.

Como ver todos os processos em execução no servidor MySQL

Este comando mostrará uma (possivelmente) longa relação de processos em execução no seu sistema.

mysqladmin -u root -p processlist
Como criar um banco de dados no servidor MySQL

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.

Como excluir um banco de dados

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.

Como recarregar e atualizar os privilégios MySQL

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
Como iniciar e desligar o servidor MySQL de maneira segura

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 -?

Divirta-se!

LEIA MAIS: