「ターミナルからサーバー起動&停止ができるようにする」ってことしました。
*ここではHogeユーザーがPostgreSQLの実行ユーザーとしてます。セキュリティの観点からroot権限のユーザーだとPostgreSQlは実行できないようになってるのでお気をつけ。
(1)パスを設定する
環境設定ファイルの.bash_profileファイルを開きます。
//ファイルのあるディレクトリに移動 $ cd ~ //ファイルあるか確認 $ ls -a . .. .DS_Store .RData ~~中略~~ .bash_history .bash_profile .bashrc //ファイルを編集 $ vi .bash_profile //以下の行を追加して上書き export PATH=$PATH:/Library/PostgreSQL/9.0/bin export PG_HOME=/Library/PostgreSQL/9.0 export PGDATA=$PG_HOME/data export PG_LIB=$PG_HOME/lib //ファイルを再読み込みして設定を反映させる $ source .bash_profile
PATHにサーバー起動コマンドが入っているディレクトリ(ここでは/Library/PostgreSQL/9.0/bin)を追加することで、どこからでも起動や停止ができるようしています。
また、サーバーを起動する場合には、データベースに格納するデータなどをどのディレクトリに保存するかを設定してあげる必要があります。
それがPGDATAの環境変数で指定してあげた場所です。もちろんこれも任意の場所です。
(2)PostgreSQLのディレクトリの所有者をHogeさんにしてあげる。
コマンドを実行するためには、そのコマンドが入ったディレクトリをPostgreSQLの管理ユーザーの所有物にしなければ!というわけで、しました(これしないと、Permission deniedとかいって怒られます)
この作業はroot権限のユーザーではないとできないので、一度rootになってから、コマンド実行します。
//rootになる。パスワードを求められるので入力。 $ sudo su - //PostgreSQLがはいったディレクトリをHogeさんの所有物にする。 # chown -R Hoge /Library/PostgreSQL/9.0 # ls -l //確認 total 16 -rw------- 1 Hoge daemon 230 Aug 20 01:15 .bash_history drwx------ 3 Hoge daemon 102 Aug 20 01:09 Library drwxr-xr-x 32 Hoge daemon 1088 Jun 4 19:08 bin drwxr-xr-x 7 Hoge daemon 238 Jun 4 19:07 doc drwxr-xr-x 29 Hoge daemon 986 Jun 4 19:08 include drwxr-xr-x 3 Hoge daemon 102 Jun 4 19:07 installer drwxr-xr-x 32 Hoge daemon 1088 Jun 4 19:08 lib drwx------ 19 Hoge daemon 646 Aug 20 01:10 olddata drwxr-xr-x 3 Hoge daemon 102 Jun 4 19:07 pgAdmin3.app -rwxr-xr-x 1 Hoge daemon 373 Jun 4 19:09 pg_env.sh drwxr-xr-x 14 Hoge daemon 476 Jun 4 19:09 scripts drwxr-xr-x 5 Hoge daemon 170 Jun 4 19:07 share drwxr-xr-x 3 Hoge daemon 102 Jun 4 19:07 stackbuilder.app drwxr-xr-x 3 Hoge daemon 102 Jun 4 19:09 uninstall-postgresql.app # exit //元にもどる logout
厳密にやるなら、パーミッションを700(所有者以外には一切触らせない)とかにすべきなのかもですがローカルで使うだけなので特に設定はしませんでした。
(3)PGDATAフォルダ作成
もともとインストーラーでインストールする時点でこのフォルダは設定してあるのですが、改めて作成します。
私の場合は、現在あるdataフォルダのバックアップをとってから削除をしました。その後、「文字コードUTF8で日本語対応」なデータベースがつくれるような設定をdataフォルダにしてあげました。
//ディレクトリをコピー $ cp -R /Library/PostgreSQL/9.0/data/ /Library/PostgreSQL/9.0/cdata/ //削除 $rm -rf /Library/PostgreSQL/9.0/data/ $ ls //確認 Library pgAdmin3.app bin pg_env.sh doc scripts include share installer stackbuilder.app lib uninstall-postgresql.app cdata //initdbというコマンドで、dataディレクトリを作成。 //いろいろ出てくるけど、最後にSuccessって出てくればOK $ initdb -E UTF8 --no-locale creating directory /Library/PostgreSQL/9.0/data ... ok creating subdirectories ... ok ~中略~ Success. You can now start the database server using: postgres -D /Library/PostgreSQL/9.0/data or pg_ctl -D /Library/PostgreSQL/9.0/data -l logfile start
以上で設定完了です。では、やってみます。
■サーバーの稼働状態を確認します(pg_ctl status)
$ pg_ctl status pg_ctl: no server running
■サーバー起動(pg_ctl start)
$ pg_ctl start server starting
■サーバー停止
$ pg_ctl stop waiting for server to shut down.... LOG: received smart shutdown request LOG: autovacuum launcher shutting down LOG: shutting down LOG: database system is shut down done server stopped
できたー!
0 件のコメント:
コメントを投稿