GNU/Linux >> Linux の 問題 >  >> Linux

Ubuntu 18.04 に PostgreSQL サーバーをインストールする方法

PostgreSQL は、世界中でサポートされているオープンソース データベースです。 30 年以上のサービス実績を持つ PostgreSQL は、利用可能なさまざまなアドオンのおかげで、その堅牢性、スケーラビリティ、およびパフォーマンスで有名です。

まず、SSH 接続を介してサーバーに接続します。まだ行っていない場合は、ガイドに従って SSH で安全に接続することをお勧めします。ローカル サーバーの場合は、次の手順に進み、サーバーのターミナルを開きます。

PostgreSQL のインストール

PostgreSQL のインストールを続行するには、apt パッケージ マネージャーを使用します。必ずキャッシュを更新してください:

$ sudo apt update && sudo apt install postgresql postgresql-contrib

インストールが完了すると、サービスはすぐに利用可能になります。 /var/log/postgresql/postgresql-10-main.log のログ ファイルを確認してください

#  tail /var/log/postgresql/postgresql-10-main.log

...LOG:  database system is ready to accept connections

...

すべてが正しく機能すると、上記のテキストがログ ファイルの最後の行に表示されます。

インストールを確認しています

PostgreSQL が正常にインストールされたことを確認するには、psql というコマンド ライン クライアントを使用します。まず、サービスによってインストールされたデフォルトのユーザーを使用します。データベースにアクセスするために、PostgreSQL のデフォルト構成の認証プロセスは同じシステム ユーザーを使用します。

デフォルト ユーザーでログインするには、コマンド ラインから次を実行します

$ sudo -i -u postgres

クライアントを起動し、\l コマンドを使用して利用可能なデータベースのリストを表示します:

$ sudo -i -u postgres

$ psql

postgres=# \l
                                                  List of databases

   Name    | Owner   | Encoding |   Collate | Ctype    | Access privileges

-----------+----------+----------+-------------+-------------+-----------------------

 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

(3 rows)
                postgres=# \q

[email protected]:~$ exit

完了したら、\q コマンドでクライアントを終了し、「exit」と入力して元のユーザーに戻ります。

ユーザーと権限の管理

前述のように、PostgreSQL は、そのサービスに存在するすべてのユーザーがシステムにも存在すると想定しています。新しいユーザーを作成するには、まず adduser を介してシステムに追加します:

$ sudo adduser tutorial

Adding user `tutorial' ...

Adding new group `tutorial' (1000) ...

Adding new user `tutorial' (1000) with group `tutorial' ...

Creating home directory `/home/tutorial' ...

Copying files from `/etc/skel' ...

Enter new UNIX password:

Retype new UNIX password:

passwd: password updated successfully

Changing the user information for tutorial

Enter the new value, or press ENTER for the default

        Full Name []:

        Room Number []:

        Work Phone []:

        Home Phone []:

        Other []:

Is the information correct? [Y/n] y

次の例では、名前や電話番号などの他の情報を指定せずに、「tutorial」というユーザーを作成しています。完了すると、PostgreSQL ユーザーを作成できます。最初に postgres ユーザーでログイン:

$ sudo -i -u postgres
                $ createuser --interactive

Enter name of role to add: tutorial

Shall the new role be a superuser? (y/n) n

Shall the new role be allowed to create databases? (y/n) n

Shall the new role be allowed to create more new roles? (y/n) n

ユーザーを作成したら、パスワードを設定し、スーパーユーザー postgres でログインして、作成したばかりのユーザーを変更します:

$ psql

postgres=# ALTER USER tutorial PASSWORD 'password'; ALTER ROLE;

コマンドを実行して、新しく作成したユーザーのデータベースを作成することもできます:

$ createdb tutorial

完了したら、ログアウトして、新しく作成したユーザーでログインしてみます:

$ sudo -i -u tutorial

[email protected]:~$ psql

psql (10.9 (Ubuntu 10.9-0ubuntu0.18.04.1))

Type "help" for help.
                tutorial=> \l

                                  List of databases

   Name    | Owner   | Encoding |   Collate | Ctype    | Access privileges

-----------+----------+----------+-------------+-------------+-----------------------

 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

 tutorial  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

(4 rows)

外部クライアントへのアクセスを有効にする

場合によっては、サーバー上の 1 つまたは複数のデータベースへの外部クライアント (たとえば、あなたのマシン) によるアクセスを許可する必要があるかもしれません。通常、PostgreSQL はローカル以外の接続を受け入れるように構成されていないため、いくつかの構成ファイルを変更してください。

最初に変更するファイルは、/etc/postgresql/10/main/postgresql.conf 内のメイン構成ファイルです。

次の行を必ず編集してください:

listen_addresses = 'localhost'

あり:

listen_addresses = '*'

このようにして、PostgreSQL に任意のネットワーク インターフェイスからの着信接続を期待するように通知します。

変更を保存してください。次の行を追加して、/etc/postgresql/10/main/pg_hba.conf 内のサーバー アクセス ルールを管理するファイルの編集に進みます。

host    tutorial        tutorial 0.0.0.0/0               md5

この変更により、「チュートリアル」ユーザーは任意のホストから自分のデータベースにアクセスできます。特に、示されているフィールドは次のとおりです:

<オール>
  • host:受け入れる接続のタイプ。可能な値は次のとおりです:

    • ローカル:システムからの非ネットワーク接続
    • ホスト:あらゆるタイプの TCP / IP 接続
    • hostssl:SSL プロトコルでのみ TCP / IP 接続
    • hostnossl:TCP / IP 接続は SSL プロトコルではありません
  • チュートリアル:アクセスを許可するデータベースの名前。すべてのデータベースを参照するには「all」を使用します

  • チュートリアル:アクセスを許可するユーザー名

  • 0.0.0.0/0:IP アドレス。この場合は、任意の IPv4 アドレスへのアクセスを許可しています

  • md5:受け入れられている認証方法。最も重要なものは次のとおりです:

    • md5:パスワード認証
    • 信頼:無条件に接続を無条件に受け入れる
    • peer:システム ユーザー名を使用して、同じ名前のデータベースにのみ接続します。
  • 詳細については、アドレス https://www.postgresql.org/docs/9.1/auth-pg-hba-conf.html または公式の PostgreSQL ドキュメントにアクセスしてください。

    終了したら、サービスを再起動してすべての変更を適用します:

    $ sudo systemctl restart postgresql

    Linux
    1. Ubuntuサーバーにロケートをインストールする方法

    2. UbuntuクラウドサーバーにVSFTPDをインストールする方法

    3. Ubuntu 22.04 に MariaDB をインストールする方法

    1. Ubuntu20.04にPostgreSQLとpgAdmin4をインストールする方法

    2. Ubuntu20.04にPostgreSQL14をインストールする方法

    3. Hyper-v に Ubuntu Server 15.10 をインストールする方法

    1. Ubuntu16.04にPostgreSQLをインストールする方法

    2. UbuntuServer22.04にOpenLDAPをインストールする方法

    3. UbuntuServerにLighttpdをインストールする方法