Google Translate

Stella inattivaStella inattivaStella inattivaStella inattivaStella inattiva
 

Mysql offre la possibilità di eseguire comandi dalla riga comandi e cioè al di fuori della classica finestra sql sia essa grafica che a caratteri.

Questa possibilità ci permette di integrare script di bash con output provenienti da mysql.

Un utilizzo classico di mysql da riga comandi è quello di ottenere un dump di una database al fine di utilizzato per salvare quest'ultimo.

Un uso meno frequente di mysql è quello di eseguire una select per utilizzare l'output in file script bash. Ed è proprio quest'ultimo utilizzao che voglio condividere con voi.

Lo scopo è quello di salvare delle directory con il comando tar. L'elenco delle directory viene letto da una tabella mysql.

# parametri per accedere al database
dbuser="root"

dbpassword="your_db_password"
host="localhost"
dbname="dbispconfig"

# select
select='SELECT domain, document_root from web_domain where document_root is not null;'

# mysql command elaborato dall'utiliti linux awk per visualizzare due colonne...
mysql --batch --raw --skip-column-names -u$dbuser -p$dbpassword -h$host -D$dbname -e"$select" \
| awk '{
print "tar -pczf /var/backup/temp/"$1 ".tar.gz " $2 
}'

Nell'esempio di è letta la tabella web_domain contenuta nel database dbispconfig e nel caso specifico la select sql è stata utilizzata per leggere 2 colonne.

L'output generato da mysql è stato rielaborato dall'utiliti awk al fine di memorizzare per ogni riga il contenuto delle colonne nelle variabili $1 e $2.


Note sui parametry di mysql

switchdescrizione
--skip-column-names
Serve a eliminare dall'output le intestazioni di colonna
--rawNon effettua conversione sui campi ed è utilizzato insieme a --batch
--batchEsecuzione del comando in batch senza aprire la console interattiva di mysql



REFERENCES

From mysql reference guide