Fórum Ubuntu Linux - PT
Suporte Técnico => Programação e Scripts => Tópico iniciado por: Cão em 24 de Fevereiro de 2017, 08:58
-
Olá,
No meu estágio, venho tendo a tarefa de limpar várias tabela, em várias bases de vários hosts(27... um pra cada estado brasileiro).
Gostaria então de um guia simples para conexão do meu cliente mysql à essas diversas bases, via terminal.
Digo via terminal, pela facilidade de elaborar scripts e macros que resumam esse trabalho, e caso alguém conheça uma ferramenta gráfica com
essas funções, seria legal também.
Grato desde já,
-
Basicamente, o comando para conexão a bancos mysql pelo terminal é:
mysql -h HOST -u USUARIO -p SENHA -D BANCODEDADOS
-
Vlw cara.
Sua resposta me deu um norte.
-
No fim eu consegui montar o script dessa forma:
#!/bin/bash
select="SELECT *
FROM tbl;" # SELECT feito para o backup
update="UPDATE tbl
SET col = val
WHERE col1 = val1;" # update
while read linha; do # Este laço lê um arquivo csv com os nomes dos hosts, portas, usuarios e senhas nas 1ª, 2ª,3ª e 4ª colunas respectivamente
host=$( echo "$linha" | cut -f1 -d' ' )
porta=$( echo "$porta" | cut -f2 -d' ' ) # Aqui os dados para acesso às bases estão sendo armazenadas em variáveis
usuario=$( echo "$linha" | cut -f3 -d' ' )
senha=$( echo "$senha" | cut -f4 -d' ' )
mysql -h$host -P$porta -u$usuario -p$senha -e"SHOW DATABASES;" > bases_do_host.txt # Para cada host, serão feitos relatórios e updates em cada banco de dados presente, este comando cria um arquivo com cada banco armazenado em uma linha
while read base; do # Loop feito em cada BD
mysql -h$host -P$porta -u$usuario -p$senha -e"$select" >> Backup.txt # Geração de um arquivo de backup, antes que sejam feitos updates
mysql -h$host -P$porta -u$usuario -p$senha -e"$update" # update
done <bases_do_host.txt
done <lista_hosts-portas-usuarios-e-senhas.txt