2012-09-01 41 views
0

我所有,bash腳本訪問多個MySQL數據庫

我有一系列的MySQL數據庫與不同的用戶和密碼,但DB結構是所有數據庫相同。 我無法使用相同的用戶名和密碼創建所有用戶,並且我需要快速執行所有這些操作。

我在想通過cron運行bash腳本。

有什麼建議嗎?我當時就想,這樣的事情,但它不工作:(

#!/bin/bash 
uconn=(
      'mysql -u user_db1   --password=pass_db1  db1  ' 
      'mysql -u user_db2   --password=pass_db2  db2  ' 

      ) 

for f in "${uconn[@]}" 
do 
    exec ${f} 
    echo `mysql show tables` 
    echo `mysql exit` 
done 
exit 

回答

1

爲什麼不使用documented方式

do 
    ${f} <<EOF 
show tables 
\\q 
EOF 
done 
0

只需粘貼完整的代碼考慮到@Ansgar Wiechers:

#!/bin/bash 
uconn=(
      'mysql -u user_db1 --password=pass_db1 db1' 
      'mysql -u user_db2 --password=pass_db2 db2' 

      ) 

for f in "${uconn[@]}" 
    do 
     ${f} <<EOF 
    show tables 
    \\q 
    EOF 
    done 
exit 

要從本地機器執行代碼到遠程機器,這適用於我:

ssh [email protected] 'bash -s' < /local/path/to/multiple_db_connections.sh 

其中的內容multiple_db_connections.sh是上面的代碼