異なるDBに接続し、1つ目のsqlで取得したidを元に、2つ目のsqlを実行するような処理を書きたいのですが
2つのDBをまたいだシェルを作成して実行したいとき、接続先とパスワードを指定するためにどのような設定ファイル(.cnf?.ini?)を用意すればよいか
わからないのでご教授いただけませんでしょうか。
DB mysql
2つの目の実行結果は1つ目の結果に2つ目で取得できる項目を追加した形でテキストに出力したいです
書いたコード
select * from tbl.test_a a where a.del_stat <> '0' " | nkf -s > test1.txt id_list=$(tail -n +3 test1.txt | awk '{print $1}' | sed "s/$/'/g" | sed "s/^/'/g" | tr "\n" "," | sed 's/,$//g') echo " select ... " | mysql --defaults-file=~/vagrant/sh/test.cnf | tail -n +2 | while read id line do data=$(cat test1.txt | nkf -w | grep "$id" ) echo -e "$data\t$line" done | nkf -s >> test2.txt
スキーマと言っているのはOracle等で使われるユーザーごとの名前空間のことをおっしゃっているかと思われますが、MySQLにはそのような概念はありません。その辺の認識は大丈夫でしょうか?
すいませんmysqlだとデータベースですね。失礼しました。
異なるDBとは、サーバなのか、データベースなのかテーブルなのかを明記していただくのと、肝心な質問は、ユーザとパスワードをどのように指定するかということでしょうか?
同一サーバーの中にある異なるデータベース2つを指定してそれぞれ異なるパスワードなので1度で指定できるような設定ファイルを作成してシェルで呼べたら便利だなという感じです
show databases; で表示されるデータベースという意味?別プロセスとして動作しているDBMS?
show databasesで表示されるデータベースです
それであれば、kunaiさんがご提示されている内容で回答になっているはずですが、それでも何か問題があるのでしょうか?