PostgreSQL RDBS

[DB]CentOS7にPostgreSQLへをインストール

投稿日:


どうも,@EaEです!
私事ですが、先日初めてメールをいただきました。

この拙いブログが誰かの役に立って本当に良かった...
(本気で泣くかと思いましたww)

その中で、『もう少しプロフィールを詳しく知りたい。』『今現在どんなことができるのか知りたい。』とあったので、ちょっとだけプロフィールを更新しました!
遅れてしまって申し訳ないです。まさか、メールが来るなんて思っていなかったので、webメールを全く見ていませんでしたw

今日は、Oさんの依頼の続きで、PostgreSQLの設定です。
とりあえず、インストールと設定までが依頼されたところなので、今日はそこまでです。

準備・構築環境

準 備

使用するのは、前回Vagrantを使って構築したCentOS7です。

構築環境

・ホストOS : Windows10 pro
・ゲストOS : CentOS7 (Vagrant Cloudから)
・VM : VirtualBox 5.2.12
・Vagrant : 2.2.0

LinuxへPostgreSQLをインストール

step
1
PostgreSQLの存在確認


何はともあれ、仮想環境へsshで接続します。

PS C:\Workspace\MyDevelop\999_VirtualMachine> vagrant ssh
Last login: Thu Nov 15 13:03:18 2018 from 10.0.2.2
[vagrant@localhost ~]$

接続が確認できたら、 rpm コマンドと grep コマンドを使ってパッケージを検索します。

[vagrant@localhost ~]$ rpm -qa | grep 'postgres'
postgresql-libs-9.2.24-1.el7_5.x86_64
postgresql-server-9.2.24-1.el7_5.x86_64
postgresql-9.2.24-1.el7_5.x86_64
postgresql-contrib-9.2.24-1.el7_5.x86_64
[vagrant@localhost ~]$

ココがポイント

・postgresql-libs
・postgresql-server
・postgresql
・postgresql-contrib の4つのパッケージが必要。

上の4つのパッケージが確認できない場合は、インストールを行います。

[vagrant@localhost ~]$ sudo yum install postgresql-tcl postgresql-server postgresql postgresql-contrib

インストール後、再度パッケージの検索を行い、4つのパッケージが確認できればOKです。

step
2
PostgreSQLの初期設定


次に初期設定を行います。
『PostgreSQL』は自分が参照・使用するデータがどこに存在するのか知っている必要があります。
一般的には /var/lib/pgsql/data ディレクトリに作るのが普通らしいのですが、
今回は簡単に済ませたかったので、VMログイン時のカレントディレクトリを指定していきます。

[vagrant@localhost ~]$ pwd
/home/vagrant
[vagrant@localhost ~]$ mkdir data
[vagrant@localhost ~]$ initdb -D /home/vagrant/data
[vagrant@localhost ~]$ cd data
[vagrant@localhost data]$ ls -a
. base pg_clog pg_ident.conf pg_notify pg_snapshots pg_subtrans pg_twophase pg_xlog
.. global pg_hba.conf pg_multixact pg_serial pg_stat_tmp pg_tblspc PG_VERSION postgresql.conf

ディレクトリにファイルが生成されたことを確認して、最低限の準備は終了です。
本来は、ディレクトリを指定する際に文字コードなどを指定しますが、今回は接続のみを確認したいので、省略しています。

サービスの起動とDB接続

step
1
PostgreSQLのサービス起動


CentOS7からは、 init.d が廃止されているそうで、変わりに systemctl が採用されています。そのため、起動方法も以下のようになっています。
[vagrant@localhost data]$ systemctl start postgresql.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Authenticating as: root
Password:
==== AUTHENTICATION COMPLETE ===
[vagrant@localhost data]$

ココに注意

ディレクトリの指定をせずに起動を実行するとPostgreSQLが立ち上がりません。
まずは、ディレクトリの指定を。

step
2
起動の確認


起動エラーが表示されなかったので、次に起動しているのか確認を行います。
[vagrant@localhost data]$ systemctl list-units --type=service
UNIT LOAD ACTIVE SUB DESCRIPTION
auditd.service loaded active running Security Auditing Service
chronyd.service loaded active running NTP client/server
crond.service loaded active running Command Scheduler
dbus.service loaded active running D-Bus System Message Bus
getty@tty1.service loaded active running Getty on tty1
gssproxy.service loaded active running GSSAPI Proxy Daemon
kmod-static-nodes.service loaded active exited Create list of required static device nodes for
lvm2-lvmetad.service loaded active running LVM2 metadata daemon
lvm2-monitor.service loaded active exited Monitoring of LVM2 mirrors, snapshots etc. usin
network.service loaded active exited LSB: Bring up/down networking
NetworkManager-wait-online.service loaded active exited Network Manager Wait Online
NetworkManager.service loaded active running Network Manager
polkit.service loaded active running Authorization Manager
postfix.service loaded active running Postfix Mail Transport Agent
postgresql.service loaded active running PostgreSQL database server
rhel-dmesg.service loaded active exited Dump dmesg to /var/log/dmesg
rhel-domainname.service loaded active exited Read and set NIS domainname from /etc/sysconfig
rhel-readonly.service loaded active exited Configure read-only root support
rpcbind.service loaded active running RPC bind service
rsyslog.service loaded active running System Logging Service

"postgresql.service"が表示され、"loaded active running PostgreSQL database server"が表示されているので、どうやら起動を成功しているようです。

step
3
ローカル環境からDBへ接続


それではひとまずローカルから接続する準備はできました。次に、『SQL Shell』を使って、『PostgresSQL』へ接続していきます。
『SQL Shell』はPostgreSQLのクライアントアプリケーションで、
初回接続時はDBが作成されていないので、以下のコマンドで初回は接続します。
[vagrant@localhost data]$ psql -U postgres
psql (9.2.24)
Type "help" for help.
 
postgres=#

これで、ゲストOSからPostgreSQLへ接続することができました。
ひとまず、ゲストOS内でDBを扱うことができます。

この状態であれば、通常のSQL文を使うことができます。
ただし、エンコードなどは変更していないので、日本語入力などを行うためにはエンコードを変更する必要があります。

今日はとりあえずここまでです。

  • この記事を書いた人

@EaE

ぬこ様とC#をこよなく愛する27歳です. 医療:理学療法士から、IT:システムエンジニアへ華麗?な変身をとげました. サーバーサイドエンジニアとして、日々奮闘しています. 今年の目標は、頑張ってWebサービスを作ります!!

-PostgreSQL, RDBS

Copyright© Developer Wall - 開発の壁 - , 2019 All Rights Reserved Powered by AFFINGER5.