Iniciando com MySQL – Parte 2

 

Neste artigo, daremos continuidade à série de artigos que tratam do início com o MySQL Server, e nesta parte recordaremos os tipos de conexão com o servidor já vistos no artigos anterior e novos parâmetros para seleção do tipo de protocolo, quais protocolos estão disponíveis para conexão com o servidor, geração de XML e HTML através de consultas, executando o mysql client em Batch e como executar scripts em arquivos do sistema operacional para criar objetos e dar carga em tabelas de um banco de dados do MySQL.

 

         Após ler este artigo você será capaz de:

 

·                                                                    Definir qual protocolo de comunicação o mysql client utiliza para se conectar ao servidor;

·                                                                    Retornar consultas no formato XML;

·                                                                    Retornar consultas no formato HTML;

·                                                                    Iniciar o mysql client no formato Batch;

·                                                                    Executar scripts em arquivo do sistema operacional;

 

         Recordar é viver...

 

No artigo anterior, mostramos situações em que são utilizadas várias opções para conexão com o mysqld, através do mysql client, que é o utilitário de linha de comando para interação direta com a parte servidor do MySQL Server. As opções abordadas  no artigos anterior foram:

 

-u : parâmetro que antecede o nome do usuário utilizado a conexão;

-p : parâmetro que antecede a senha, lembrando que, se digitarmos uma senha, esta deve ser digitada imediatamente após a parâmetro, sem espaços;

-h : parâmetro que antecede um hostname ou endereço IP;

-P : parâmetro que antecede o número da porta de conexão com o mysqld;

 

Além dos parâmetros acima, vistos com exemplos práticos no artigo 1, neste artigo veremos primeiramente os protocolos de conexão do mysql  client com o servidor MySQL que é o mysqld.

 

A opção que pode ser utilizada para escolha do protocolo a ser utilizando para uma conexão com o servidor MySQL é --protocol. Antes de iniciarmos uma conexão, selecionando explicitamente qual protocolo usaremos, primeiramente, precisamos conhecer quais protocolos estão disponíveis.

 

A Figura 01 mostra os protocolos que são utilizados em Windows e Linux.

 

19-12-2007pic01.JPG 

 

Figura 01. Protocolos utilizados para comunicação entre Cliente e Servidor MySQL.

 

Como podemos verificar na Figura 01, o protocolo TCP/IP é utilizado nas duas plataformas de sistemas operacinais, Windows e Linux/Unix. O socket, está disponível somente em sistema Linux/Unix. Named Pipes e Shared Memory são utilizados em ambiente Microsoft, disponível em Windows XP/2000/NT e em servidores mysqld com terminação nt, como o mysqld-nt ou mysql-max-nt, ambos descritos em suas características no artigo anterior desta série.

 

Casos particulares são somente as conexões via socket, named pipes e shared memory. O socket é criado no momento em que o MySQL Server é iniciado para uma conexão local no Linux/Unix, no diretório /var/run/mysqld/mysqld.sock. Caso sua conexão com o MySQL Server, mesmo que local, utilize o protocolo TCP/IP, o arquivo de socket não será utilizado.

 

Conexões em ambiente Windows também podem utilizar TCP/IP, mas estão disponíveis, embora desabilitados por padrão, conexões locais via Named Pipes que são conexões via Pipe Nomeado, habilitando iniciando o mysqld-nt ou mysqld-max-nt com a opção --enable-named-pipe. Shared Memory também só está disponível também para conexões locais no Windows e pode ser habilitada iniciando os servidores com terminação nt com a opção --shared-memory.  Vale salientar que o Pipe padrão é MySQL.

 

19-12-2007pic02.JPG 

 

Caso não mencionemos em uma conexão com o MySQL Server sem mencionar a opção

--protocol, o protocolo de conexão é determinado implicitamente, baseado no sistema operacional do client, que solicita a conexão e do servidor, que recebe a conexão.

 

No Windows, um client poderá estabilizar uma conexão através de uma conexão via pipe nomeado, especificando o ‘.’ (ponto) como referência a localhost. Caso named pipes não esteja habilitado, a conexão será efetivada via TCP/IP (Figura 02).

 

19-12-2007pic03.JPG 

Figura 02. Verificando com \s o protocolo da conexão no Windows.

 

Em sistemas operacionais Linux/Unix, localhost é um caso particular. Mencionando localhost no comando de conexão, via client ou mesmo naquela conexão com uma aplicação  escrita em PHP, força uma conexão via socket (Figura 03).

 

19-12-2007pic04.JPG 

Figura 03. Verificando com \s o protocolo de conexão com localhost no Linux.

 

Respeitado então, as regras de protocolos disponíveis, podemos utilizar a opção já citada

--protocol para indicar, por exemplo, no Linux, uma conexão via TCP/IP.


XML

 

Após entender o funcionamento dos protocolos no MySQL, podemos seguir com o próximo tópico do artigos, agora mostrando como retornar um XML de uma determinada consulta. Para que isso seja possível, temos que informar a opção –X ou --xml em meio as opações de conexão do client com o server.

A Figura 04 exibe uma conexão com esta opção e retornando um XML de uma consulta à tabela users do banco de dados mysql, onde o user é igual a root, impondo a limitação em 1 resultado.

 

19-12-2007pic05.JPG 

Figura 04. Retornando um XML de uma consulta específica.

 

Também se pode retornar o banco de dados em forma de backup no formato XML, com o mysqldump.

 

HTML

 

Para retornar um HTML de uma consulta específica, basta informar a opção –H ou –html, como segue na Figura 05.


19-12-2007pic06.JPG 

Figura 05. Produzindo HTML como resultado de uma consulta.

 

 

Executando em BATCH

 

Por padrão, quando acessamos o MySQL via MySQL Client, os resultados são exibidos são delimitados por Tab, conhecido como tab-delimiter. Podemos iniciar a interação com o servidor em forma Batch para execução de algum script localizado em um arquivo localizado no sistema operacional ou mesmo uma carga no banco de dados. Com a opação –B podemos ter esse efeito no prompt ou terminal.

 

Vamos executar então um arquivo com o comando SOURCE, cujo conteúdo do arquivo é “SELECT VERSION();”, salvo com o nome “teste.txt”, na raiz da partição C:\, no filesystem do Windows. A Figura 06 exibe tal execução.


19-12-2007pic07.JPG 

Figura 06. Executando um arquivo do sistema operacional através do comando SOURCE no modo BATCH.

 

Uma observação a fazer é que, se o comando SQL estiver errado e resultar num erro de compilação, o prompt do mysql client será finalizado, como mostra a Figura 07.

 

19-12-2007pic08.JPG 

Figura 07. Comando SQL com erro de compilação e término do prompt do mysql client.

 

Conclusão

 

Neste artigo, passamos pelos atributos e opções básicos para manipulação do mysql client em conexão com o mysqld ou o MySQL Server. Passamos pelo conceito de protocolos, criação de resultados nos formatos XML e HTML e executando arquivos localizados no sistema operacional em modo BATCH com o comando SOURCE.

 

Referência Bibliográfica

 

·                                             MySQL 5.0 Reference Manual - http://dev.mysql.com/doc/refman/5.0/en/