近いうちにOracle Databaseを使うことになりそうなので、Linuxが入ったPCにインストールしたんですが、データベースに接続するときに毎回コマンドを求められたり、ルート権限にログインしなければならなかったりでめんどくさかったので、シェルスクリプトにしてワンクリックで実行できるようにしました。
実行環境
- Linux Mint 18 64bit
- Oracle Database 11g XE
#データベースへの接続
データベースの接続をするのにroot権限に入った後に
su - oracle
でoracleに入って、oracle_env.shを実行し
sqlplus
SQLを起動できるんですが、毎回oracle_env.shを実行するのがめんどくさいしSQLを起動するのに2回もパスワードを求められるのが億劫だったのでシェルスクリプトへ
#シェルスクリプトの作成
Linuxでのシェルスクリプトは、.shのファイルです。
ここに
su
su - oracle
sqlplus
という内容のスクリプトを作成し実行したのですが、1行目のコマンドが実行されてパスワードを要求、rootに入れたのですが、2行目が実行されない...
exitでrootから抜けると2行目が実行されるも、rootから抜けているために認証できない...
どうしたものかと悩んだところ、隠しファイルになっている.bashrcにコマンドを入れるとパスが通って.bashファイルがある場所に入った段階でコマンドが
実行されるようでsu - oracleでここのディレクトリに移動した段階で、oracle_env.shの実行とsqlplusを実行すればいいのではと考えました。
#結局
シェルスクリプトは、
sudo su - oracle
というコマンドで、oracleディレクトリに入ることにし、入った段階でsqlplusが起動できるように
oracle_env.sh実行コマンド
sqlplus
というコマンドを.bashファイルの最後に追記しました。
後は、スクリプトを起動するためのDesktopEntryを作ってワンクリックで起動
#追記
SQLPlusが.bashなくてコマンドの履歴が出ないでいろいろと不都合だったので、rlwrapというツールをインストールして.bashを
rlwrap sqlplus
に変更
コマンドの履歴が見れるようになりました
#まとめ
もしかしたらこれだと使っていくうちに不便になるかもしれないのでそうなったら別の手を考えるしかないですね