0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Linux MintにOracle 11g をインストールした後にやったこと備忘録

Last updated at Posted at 2016-12-03

近いうちに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

に変更

コマンドの履歴が見れるようになりました

#まとめ
もしかしたらこれだと使っていくうちに不便になるかもしれないのでそうなったら別の手を考えるしかないですね

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?