первым извините меня за мой английский я из швейцарии :)Bash экспорта различных таблиц из 96 баз данных
мне нужна помощь с моей Баш скрипт для экспорта таблиц с разными префиксами от различных databeses MYSQL. Мне нужно экспортировать столбец с именем «introtext» из 96 баз данных и в каждом db у tablenames есть прецеденты diefferent.
С моим текущим сценарием он экспортирует только первую таблицу с первого дб, мой счетчик подсчитывает, но не изменяет имя таблицы и БД ...
имя таблицы и имя_базы_данный в переменных приведен в правом/же заказ.
Здесь мой скрипт с 4 базами данных из моей тестовой системы.
#!/bin/bash
#MySQL Login Variablen
user=root
pass=pwd123
#Tebellenname Variablen
STRtbl="ebn8r_content,h4akd_content,vbm6h_content,fb2tz_content"
#DB Variablen
STRDB="DB1,DB2,DB3,DB4"
counter=0
countermax=95
#IFS=',' read -a ARRAYdb <<< "$STRDB"
#IFS=',' read -a ARRAYtbl <<< "$STRtbl"
IFS=","
ARRAYdb=($STRDB)
ARRAYtbl=($STRtbl)
while [ $counter -le $countermax ]
do
#Entfernt Counter von Tabellenname/remove counter from tablename
tblcount=$ARRAYtbl[$counter]
tbl=${tblcount%[*}
#Entfernt Counter von DB-Namen/remove counter from dbname
dbcount=$ARRAYdb[$counter]
db=${dbcount%[*}
echo "$dbcount"
#MySQL Abfrage Variable
query="SELECT introtext FROM $tbl INTO OUTFILE '/tmp/$db.csv' LINES TERMINATED BY '\n';"
#echo "$query"
echo "Counter= $counter"
#Abfrage zusammenstellen und ausführen/build the full mysql query
for table in $(mysql -u$user -p$pass -D$db -Be "SHOW TABLES"); do
echo "exporting $db"
mysql -u$user -p$pass -D$db -Be "$query"
counter=$[$counter +1]
echo "$ARRAYdb[$counter]"
done
done
echo "Export abgeschlossen"
С TBL = $ {tblcount% [*} я удалить номер "[п]" из таблицы и имя db, чтобы использовать его в запросе – sip
В таблице не должно быть '[n]'. Доступ к элементу массива только извлекает это значение. – Barmar
, когда я добавляю {}, как ваш пример, mysql can not читает таблицу и имя db ... тогда запрос выглядит так: SELECT introtext FROM INTO OUTFILE '/tmp/.csv' LINES TERMINATED by '\ n'; – sip