新しいインスタンス (PostgreSQL では「クラスター」と呼ばれます) を作成して起動することにより、root 権限なしで PostgreSQL を実行できます。
Ubuntu の初期化スクリプト、pg_ctlcluster
などのラッパー ツールは使用できません。 、など。 PostgreSQL 独自のツールのみを使用する必要があります。
ユーザー名と同じスーパーユーザー、ホーム ディレクトリのデータ ディレクトリ、デフォルトで有効な md5 認証で新しい PostgreSQL インスタンスを作成するには、次を使用します。
initdb -D $HOME/my_postgres -A md5 -U $USER
必要に応じて調整します。 initdb --help
を参照 .
postgresql.conf
を編集する必要があります。 port
を変更するには システムはおそらくデフォルトのポート 5432 で独自の postgres を実行するため、デフォルト以外のものに変更します (アクセスを厳密に制限したい場合は、代わりに listen_addresses = ''
を設定できます)。 および unix_socket_directories = /home/myuser/postgres_socket
または何でも。ただし、別のポートを使用する方が簡単です。)
開始するには:
pg_ctl -D $HOME/my_postgres -w start
それに接続するには、選択したポートを指定します:
psql -p 5434 ...
( unix_socket_directories
を変更した場合 -h /home/myuser/postgres_socket
のように、指定したパスも指定する必要があります。 .)
psql
にする などはデフォルトでpostgresに接続し、 ~/.bashrc
を編集します のようなものを追加する
export PGPORT=5434
ただし、他のホストへの接続用のデフォルト ポートにも影響することに注意してください。
停止するには:
pg_ctl -D $HOME/my_postgres -w stop
ただし、停止せずにシャットダウンすることもできます。それは気にせず、次に起動したときに安全に回復します。
ホームディレクトリにセットアップされているときにログインしたときに自動起動するには、デスクトップ環境の起動時実行機能を使用する必要があります。環境やバージョンによって異なるため、ここでは詳しく説明できません。 GNOME 3、Unity (ubuntu)、KDE、XFCE などでは異なります。
このアプローチはまだシステム packages を使用していることに注意してください PostgreSQL用。 PostgreSQL 9.4 を (たとえば) アンインストールして 9.6 をインストールすると、ホーム ディレクトリにあるコピーが機能しなくなるため、これは重要です。システムを制御していない場合のように、システム パッケージから完全に独立させたい場合は、ソースから PostgreSQL をコンパイルするか、バイナリ インストーラを使用してホーム ディレクトリ内にインストールする必要があります。