bash脚本访问多个mysql数据库

时间:2012-09-01 23:00:39

标签: mysql bash sh

我都是,

我有一系列具有不同用户和密码的MYSQL数据库,但所有数据库的数据库结构都相同。 我无法为所有用户创建具有相同用户名和密码的用户,我需要快速对所有用户执行操作。

我正在考虑通过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

2 个答案:

答案 0 :(得分:1)

为什么不使用documented方式?

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

答案 1 :(得分: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 ssh_user@mydomain.com 'bash -s' < /local/path/to/multiple_db_connections.sh 

multiple_db_connections.sh 的内容是上面的代码