お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2009-07-04 18:09:39

bojin
メンバ
登録日: 2009-02-11

PostgreSQLの初期設定をしてみました

インストール

    Synapticでpostgresql、pgadmin3をインストール

    PostgreSQLでは、OSのユーザとデータベースユーザとは独立している。
    インストールした直後の状態はOSのユーザとしてのpostgres(このままではログインできない)
    とデータベースユーザとしてのpostgresがあるのみ
       

psqlでの初期設定
   
    PostgreSQLにログインするためLinuxユーザとしてのpostgresのパスワードを設定する。
        $ sudo passwd postgres
       
    Linuxユーザとしてのpostgresでログイン
        $ su postgres
       
    この時点でシェルから $ psql とタイプするとpsqlを起動できる。
    これはpg_hda.confファイルに
        local     all     all     ident     ident sameuser

    の記述があるためで、この行がないとpsqlを起動できない。
    また、この時点ではPostgreSQLユーザとしてのpostgresはパスワードが設定されていないので
    パスワードが必要なログイン方法(passward,md5等)ではpsqlを起動できない。
   
    psqlでのPostgreSQLユーザパスワードの設定
        postgres=# alter user ユーザ名 with password 'パスワード';
   
    psqlでのPostgreSQLユーザの追加
        $ createuser -P
        Enter name of user to add: hogehoge
        Enter password for user "hogehoge": パスワード
        Enter it again: 上で入力したパスワード
        Shall the new user be allowed to create databases? (y/n) y
        Shall the new user be allowed to create more new users? (y/n) n
        CREATE USER


pgAdmin3での初期設定
   
    初期状態ではPostgreSQLサーバに接続できない。
    これはpg_hda.confファイルの設定において、
        localhostではUbuntuのログインユーザ名でPostgreSQLサーバにログインしようとして失敗(推測)
        IPv4 local connectionsではログイン方法がmd5に指定されているため、ユーザpostgresで
        PostgreSQLサーバにログインしようとするが、ユーザpostgresのパスワードが設定されていないため失敗する。
   
    ユーザpostgresでPostgreSQLサーバにログインするには
    /etc/pstgresql/8.3/main/pg_hba.confを修正
        host  all  all  127.0.0.1/32          md5
                    ↓
        host  all  all  127.0.0.1/32          trust
       
    ちなみにこの方法ではLinuxユーザーとしてのpostgresとしてPostgreSQLサーバへ接続しないので、
    Linuxユーザーとしてのpostgresのパスワードの設定は、必要ない。


他のコンピュータからからPostgreSQLへの接続

    ファイアウォールの設定
        gufwをインストール
            外部からのトラフィックを拒否する
            PostgreSQL用のポートを追加
                tcp の5432
   
    他のコンピュータからPostgreSQLへの接続を許可するには、psqlまたはpgAdmin3でユーザを追加した後
    /etc/pstgresql/8.3/main/postgresql.confを修正
        # listen_addresses = 'localhost'
                    ↓
        listen_addresses = '*'
   
    /etc/pstgresql/8.3/main/pg_hba.confに次の行を追加(192.168.0.*の場合)
        host  all  all  192.168.0.0/24  md5
   
    注意)ちなみにすべての端末からすべてのユーザのPostgreSQLへの接続を許可するには
        host  all  all  192.168.0.0/0      trust
        (192.168.0.0の部分は何でもよい)
   
   
PostgreSQLの設定を反映させる
    設定を反映させるにはpostgresqlサービスに設定をリロードさせる。
    サービス名はバージョン番号がついた「postgresql-8.3」になっている。
        $ sudo /etc/init.d/postgresql-8.3 restart

オフライン

 

Board footer

Powered by FluxBB