MySQL: Executar consulta do Bash Script ou linha de comando Linux

Postado 16:45 04/03/2022 por COMPARTILHAR

MySQL: Executar consulta do Bash Script ou linha de comando Linux

fonte: https://www.shellhacks.com/mysql-run-query-bash-script-linux-command-line/

Às vezes, é necessário executar algumas consultas MySQL a partir da interface de linha de comando Linux sem acessar o prompt MySQL interativo.

Por exemplo, quando é necessário agendar um backup do banco de dados MySQL ou automatizar a execução de algumas consultas SQL com um script Bash.

Neste artigo mostrarei as opções mais úteis, do meu ponto de vista, do cliente da linha de comando MySQL e mostrarei como executar várias consultas SQL para um banco de dados a partir de um script Bash.

Dica legal: Liste os usuários do MySQL, suas senhas e privilégios concedidos a partir do prompt de linha de comando! Leia mais →

MySQL: execute consultas SQL do Linux Shell

Execute a consulta SQL a partir da linha de comando Linux:

$ mysql -u USER -pPASSWORD -e "SQL_QUERY"

-pPASSWORD: Isso não é um erro de digitação! Não deve haver um espaço entre sua senha e o -p quando você passá-la na linha de comando!

Execute a consulta SQL no banco de dados explicitamente especificado:

$ mysql -u USER -pPASSWORD -D DATABASE -e "SQL_QUERY"

Execute a consulta SQL no host explicitamente especificado:

$ mysql -u USER -pPASSWORD -h HOSTNAME -e "SQL_QUERY"

Supressão de títulos de coluna:

$ mysql -u USER -pPASSWORD -N -e "SQL_QUERY"

Suprimir fronteiras de tabela:

$ mysql -u USER -pPASSWORD -B -e "SQL_QUERY"

Salve a saída em um arquivo:

$ mysql -u USER -pPASSWORD -e "SQL_QUERY" > FILE

Dica legal: Crie um banco de dados MySQL e GRANT ALL PRIVILEGES a ele para um usuário! Tutorial MySQL simples e claro com bons exemplos! Leia mais →

As opções mySQL mais úteis ao executar consultas SQL a partir da linha de comando Linux ou de um script Bash:

OpçãoDescrição
--user-uO nome de usuário MySQL para usar ao se conectar ao servidor.
--password-pA senha a ser usada ao se conectar ao servidor.
--database-DO banco de dados para usar.
--host-hConecte-se ao servidor MySQL no host dado.
--skip-column-names-NNão escreva nomes de colunas em resultados.
--batch-BImprimir resultados usando a guia como separador de coluna, com cada linha em uma nova linha.

MySQL: execute consultas SQL de um script bash

Para executar várias consultas SQL ou uma única consulta SQL multi-line eu uso o <<EOF...EOF.

A parte <<EOF diz à concha que vou entrar em várias linhas até a tag EOF.

Observe que aqui não deve haver espaços pouco antes da segunda tag EOF, caso contrário, será considerada como parte da consulta SQL.

A propósito, você pode renomear o EOF para qualquer coisa que quiser, por exemplo<<MY_QUERY...MY_QUERY.

Dica legal: Você tem um backup? Você deve tê-lo! Backup de bancos de dados MySQL da linha de comando! Isso é muito fácil! Leia mais →

Use a construção a seguir se você precisar executar várias consultas SQL a partir de um script Bash:

mysql -u USER -pPASSWORD <<EOF
SQL_QUERY 1
SQL_QUERY 2
SQL_QUERY N
EOF

Exemplo de script de bash:

#!/bin/bash
mysql -u root -psecret <<MY_QUERY
USE mysql
SHOW tables
MY_QUERY

Comentários