1.初期設定
まずはyumで【PostgreSQL】インストールします。
[root@localhost ~]# yum -y install postgresql-server
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
・
・
省略
・
・
Dependency Installed:
postgresql.armv7hl 0:9.2.24-1.el7_5 postgresql-libs.armv7hl 0:9.2.24-1.el7_5
Complete!
一応バージョンを確認しておきます。
[root@localhost ~]# psql --version
psql (PostgreSQL) 9.2.24
PostgreSQLの初期セットアップを行います。
データベースクラスタを新規で作成します。
[root@localhost ~]# postgresql-setup initdb
Initializing database ... OK
あっという間に完了します。
確認してみます。
データベースの保存先はデフォルトで【/var/lib/pgsql/data/】になっています。
[root@localhost ~]# cd /var/lib/pgsql/data/ [root@localhost data]# ls base pg_ident.conf pg_serial pg_tblspc postgresql.conf global pg_log pg_snapshots pg_twophase pg_clog pg_multixact pg_stat_tmp PG_VERSION pg_hba.conf pg_notify pg_subtrans pg_xlog
これで初期化が完了しました。
ではPostgreSQLを自動起動するように設定します。
[root@localhost data]# systemctl enable postgresql
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql.service to /usr/lib/systemd/system/postgresql.service.
以上で初期設定は完了です。
早速PostgreSQLの設定をしていきます。
2.PostgreSQLの設定
①ユーザー確認
PostgreSQLをインストールしたことで【postgres】というユーザーが
自動的に作成されています。
[root@localhost ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:999:998:User for polkitd:/:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin chrony:x:998:996::/var/lib/chrony:/sbin/nologin postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
②ログイン
まずはスーパーユーザーでログインします。
先程確認した【postgres】になります。
[root@localhost ~]# su postgres
bash-4.2$ psql
could not change directory to "/root"
psql (9.2.24)
Type "help" for help.
これでログイン出来ました。
では現状確認として
ユーザーの一覧とデータベースの一覧を見てみます。
ユーザー一覧
postgres=# \du List of roles Role name | Attributes | Member of -----------+------------------------------------------------+----------- postgres | Superuser, Create role, Create DB, Replication | {}
データベース一覧
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)
とりあえずデフォルトの状態を確認出来ました。
③ユーザー(ロール)の作成
データベースにアクセスできるユーザーを作成します。
ユーザーの作成はpsqlではなくシェル上で行います。
今回は
ユーザー名:test_user
パスワード:password
を作成してみます。
postgres=# \q bash-4.2$ createuser -P test_user could not change directory to "/root" Enter password for new role: Enter it again:
④データベースの作成
bash-4.2$ createdb -O test_user testdb
could not change directory to "/root"
⑤外部ホストから接続出来るように変更する。
postgresSQLはデフォルトでは自ホストからしか繋げないようになっています。
今回はテスト用に外部ホストから接続したいので設定を変更します。
変更は【postgresql.conf】を編集します。
[root@localhost ~]# cd /var/lib/pgsql/data/ [root@localhost data]# vi postgresql.conf#listen_addresses = 'localhost'listen_addresses = '*'#port = 5432port = 5432
更に【pg_hba.conf】を編集します。
今回は全IPから【testdb】に対して【test_user】というユーザー名での接続のみ許可しました。
[root@localhost data]# vi pg_hba.conf # IPv4 local connections:host all all 127.0.0.1/32 identhost testdb test_user 0.0.0.0/0 password
【postgresql】の再起動
[root@localhost data]# systemctl stop postgresql.service [root@localhost data]# systemctl start postgresql.service
ポートの開放
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=postgresql success [root@localhost ~]# systemctl restart firewalld.service
3.接続してみる
外部ホストからデータベースに接続してみます。
今回はツールとして【A5M2】を使ってみました。
無事接続が確認出来ました。