PostgreSQL(単にPostgresと呼ばれる)は、オブジェクトリレーショナルデータベース管理システム(ORDBMS)であり、Linux、Microsoft Windows、FreeBSD、HP-UX、AIX、Solaris、MacOSなどの多くのプラットフォームで利用できます。
PostgreSQLは、個人のボランティアや企業のグループであるPGDG(PostgreSQL Global Development Group)によって開発された、無料のオープンソースのパーミッシブソフトウェアライセンスであるPostgreSQLライセンスの下でリリースされています。
この投稿では、Debian 9 /Debian8へのPostgreSQL11/10のインストールについて説明します。
PostgreSQLリポジトリを追加
PostgreSQLはDebianベースのプラットフォーム用のdebパッケージを公開しており、それらのパッケージはOSベースリポジトリで利用可能なものよりも新しいものです。
PostgreSQL署名キーをインポートします。
wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O- | sudo apt-key add -
PostgreSQLリポジトリ情報を/etc/apt/sources.list.d/postgresql.listに追加します ファイル。
### Debian 9 ### echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list ### Debian 8 ### echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list
PostgreSQLのインストール
PostgreSQLリポジトリを追加したら、次のコマンドを実行してリポジトリインデックスを更新します。
sudo apt-get update
apt-getコマンドを使用してPostgreSQLをインストールします。
### PostgreSQL 11 ### sudo apt install -y postgresql-11 ### PostgreSQL 10 ### sudo apt install -y postgresql-10
PostgreSQLサービスの制御
PostgreSQLサービスを開始するには、次を実行します:
sudo systemctl start postgresql
PostgreSQLサービスを停止するには、次を実行します:
sudo systemctl stop postgresql
PostgreSQLサービスを再起動するには、次を実行します:
sudo systemctl restart postgresql
PostgreSQLサービスのステータスを確認するには、次のコマンドを実行します。
sudo systemctl status postgresql
出力:
● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Sat 2019-02-23 01:49:54 EST; 23s ago Main PID: 2586 (code=exited, status=0/SUCCESS) CGroup: /system.slice/postgresql.service Feb 23 01:49:54 server systemd[1]: Starting PostgreSQL RDBMS... Feb 23 01:49:54 server systemd[1]: Started PostgreSQL RDBMS.
PostgreSQLサーバーの構成
PostgreSQLはループバックアダプタ(127.0.0.1)でのみリッスンします 。外部でホストされているアプリケーションがデータベースに接続する必要がある場合があります。そのためには、すべてのアダプターをリッスンするようにPostgreSQLを構成する必要があります。
### PostgreSQL 11 ### sudo nano /etc/postgresql/11/main/postgresql.conf ### PostgreSQL 10 ### sudo nano /etc/postgresql/10/main/postgresql.conf
listen_addresses
を設定します *
へ または<IPAddress>
。
listen_addresses = '*'
PostgreSQLサービスを再起動します。
sudo systemctl restart postgresql
PostgreSQLがポート5432でリッスンしていることを確認します netstatコマンドを使用します。
sudo netstat -antup | grep 5432
出力:
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 3712/postgres tcp6 0 0 :::5432 :::* LISTEN 3712/postgres
読む : Ubuntuにnetstatコマンドが見つかりません–クイックフィックス
PostgreSQLへのアクセス
データベースを管理するには、postgresユーザーとしてログインする必要があります。
sudo su -l postgres
psqlを使用してデータベースにアクセスします 指図。これは、PostgreSQLデータベースを操作するためのインタラクティブシェルです。 。
psql
出力:
postgres@server:~$ psql psql (11.2 (Debian 11.2-1.pgdg90+1)) Type "help" for help. postgres=#の場合は「help」と入力します
セキュアなPostgreSQLデータベース
Linuxユーザー(postgres)のパスワードを設定します DB管理者(postgres) 。
Linuxユーザーのパスワードを設定します(postgres):
sudo passwd postgres
出力:
raj@mydebian:~$ sudo passwd postgres Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
DB管理者のパスワードを設定します(postgres):
su - postgres psql
psqlシェル上 、以下のコマンドを実行して、データベース管理者パスワードを変更します。
postgres=# \password
または
postgres=# \password postgres
出力:
postgres=# \password postgres Enter new password: Enter it again:
PostgreSQLDBコマンド
データベースを作成するための構文は次のとおりです。
$ su - postgres $ createdb test
ユーザー(raj)を作成するための構文は次のとおりです。
$ psql test test=# CREATE USER raj WITH SUPERUSER LOGIN PASSWORD 'password';
新しいユーザーが作成されたかどうかを確認します。
test=# \du
出力:
test=# \du List of roles Role name | Attributes | Member of -----------+------------------------------------------------------------+----------- postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {} raj | Superuser | {}
ユーザー「raj」でログインします。
psql -h localhost -d test -U raj
出力:
psql (11.2 (Debian 11.2-1.pgdg90+1)) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) Type "help" for help. test=#の場合
データベースを一覧表示するための構文:
test=# \l
出力:
test=# \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 test | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | (4 rows)
それで全部です。 PostgreSQL11/10をDebian9/Debian8に正常にインストールしました。