Pesquisar este blog

sexta-feira, 20 de outubro de 2017

Consultando bases de dados do MySQL com o PowerShell


Consultando bases de dados do MySQL com o PowerShell

Economize algum tempo consultando automaticamente os dados.
O MySQL é um banco de dados comum entre muitas organizações. Como tal, ao criar um script de automação que precisa consultar dados de algum lugar, você pode encontrar a necessidade de consultar um banco de dados MySQL. Ao usar o PowerShell e ao fazer um atalho e usar um módulo MySQL existente, você pode fazer isso acontecer.
Para consultar um banco de dados MySQL, vou assumir que você já possui um servidor MySQL do Windows e um banco de dados com pelo menos uma tabela que deseja recuperar. Eu também vou assumir que você não gerencia este servidor do próprio servidor, mas sim de um software cliente como o MySQL Workbench , que permite que você se conecte à sua instância MySQL remotamente.
Instalando o Software Pré-requisito
Infelizmente, o PowerShell não vem equipado fora da caixa com suporte para o MySQL. Temos de baixar e instalar algum software de uma vez como você fez com o MySQL Workbench.

  O software necessário para interagir com o MySQL via PowerShell é chamado de Conector / Net . Este é um driver ADO que o PowerShell pode conectar para gerenciar bancos de dados MySQL. Se você estiver trabalhando em uma máquina que já tenha o software MySQL Workbench completo, você não terá que instalar isso . A instalação é direta, permitindo que você apenas aceite os padrões.














[Clique na imagem para ampliar a imagem.] Figura 1. Instalação do software MySQL Connector / Net.
Uma vez que o driver ADO foi instalado, você precisará baixar algum código do PowerShell que já foi criado para fazer isso. Você usará um módulo PowerShell chamado MySQL. Este módulo consiste em vários comandos que você pode usar para gerenciar bancos de dados MySQL. Neste exemplo, só vamos trabalhar com algumas das funções que você verá momentaneamente.
Módulo MySQL PowerShell
Sem sair do PowerShell, você pode baixar este módulo do PowerShell usando o cmdlet Invoke-WebRequest. Neste exemplo, vou baixar um arquivo chamado master.zip de um repositório Github para um arquivo chamado MySQL.zip localizado na raiz de C: \.
  Invoke-WebRequest -Uri https://github.com/adbertram/MySQL/archive/master.zip -OutFile 'C: \ MySQL.zip'
Uma vez que o módulo MySQL é baixado, você precisará descompactá-lo em uma pasta onde o PowerShell pode carregá-lo automaticamente. Estarei usando a pasta C: \ Program Files (x86) \ WindowsPowerShell \ Modules.
  $ modulesFolder = 'C: \ Arquivos de Programas \ WindowsPowerShell \ Modules' 

   Expand-Archive -Path C: \ MySql.zip -DestinationPath $ modulesFolder
Como Github atribui o nome da filial ao download, precisamos remover o "-master" do final da pasta.
  Renomear-Item -Path "$ modulesFolder \ MySql-master" -NewName MySQL
Em seguida, precisamos de uma maneira de passar um nome de usuário e senha para o servidor MySQL. Uma maneira segura de fazer isso é usar o objeto Credential do PowerShell que armazena o nome de usuário e a senha em um estado criptografado. Vou usar o cmdlet Get-Credential para atribuir uma credencial à variável $ dbCred.
  $ dbCred = Get-Credential
Em seguida, eu preciso fazer uma conexão com o servidor MySQL usando o nome de usuário e a senha que especificamos anteriormente. Aqui estou especificando um servidor MySQL chamado MYSQLSERVER conectando-se a um banco de dados chamado SynergyLogistics.
  Connect-MySqlServer -Credential $ dbcred -ComputerName 'MYSQLSERVER' -Database SynergyLogistics










[Clique na imagem para ampliar a imagem.] Figura 2. Conexão ao servidor MySQL via PowerShell.
Uma vez que a conexão é feita, é sempre uma boa idéia executar uma simples consulta SELECT para garantir que possamos extrair informações do banco de dados. Estarei usando uma tabela chamada Usuários dentro do meu banco de dados para que eu execute uma consulta SELECT simples contra ela usando a função Invoke-MySqlQuery. Invoke-MySqlQuery é um cmdlet que vem com o conector MySQL que você baixou anteriormente. Isso deve retornar todas as linhas dentro da minha mesa.
  Invoke-MySqlQuery -Query 'SELECIONE * FROM Usuários'















[Clique na imagem para ampliar a imagem.] Figura 3.
Você verá acima que estou mostrando duas linhas retornadas da minha tabela Usuários.
Agora você pode consultar as tabelas do banco de dados MySQL. No entanto, usando o módulo MySQL baixado e instalado de cima, você também pode fazer algumas outras coisas também. Para ver todos os outros comandos que você agora possui, você pode usar a função Get-Command com o parâmetro Module para listar todos os comandos disponíveis dentro do módulo MySQL.










[Clique na imagem para ampliar a imagem.] Figura 4.
Agora você deve ter a capacidade de executar grande parte das funcionalidades comuns necessárias para não apenas consultar bases de dados MySQL do PowerShell, mas também criar bancos de dados, tabelas e usuários também.

Sobre o autor
Adam Bertram é um consultor independente, escritor técnico, treinador e apresentador. Adam é especialista em consultoria e evangelização de tudo. A automação de TI focada principalmente no Windows PowerShell. Adam é um MVP do Microsoft Windows PowerShell, 2015 powershell.org e tem numerosas certificações Microsoft IT pro. Ele é escritor, treinador e apresentador e publica conteúdos de profissionais de TI para o Pluralsight. Ele também é um colaborador regular de inúmeras publicações impressas e on-line e apresenta em vários grupos de usuários e conferências. Você pode encontrar Adão em adamtheautomator.com ou no Twitter em @adbertram.
  
Autor: Adam Bertram - 03/02/2016
Retirado de: https://mcpmag.com/articles/2016/03/02/querying-mysql-databases.aspx

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.