Python
AWS
PostgreSQL
cloud9

AWS cloud9にpostgreSQLをインストール!

ネットで調べてみてもディレクトリの構成や作業環境が違いすぎてコマンドが違うからメモ
参考にさせて頂いたサイトはこちらです。
http://h2shiki.hateblo.jp/entry/2016/04/24/170721
http://cocodrips.hateblo.jp/entry/2017/09/04/213323
http://tetsuyai.hatenablog.com/entry/20120108/1326956427
http://cmemo.net/articles/server_install/postgresql-%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/
https://blog.akires.tokyo/it/os-version-in-cloud9/
http://noa5931.blog.fc2.com/blog-entry-1.html

インストール済みのPostgreSQLがないか確認。

$ psql --version

インストールしたいパッケージを取得してリポジトリに登録

http://yum.pgrpms.org/repopackages.php

OS、CPU が該当するパッケージを右クリックしてリンク URL を取得します。

cloud9の環境は、Amazon Linux AMI 2018.03 の 64ビットなので、PostgreSQL 9.6 の CentOS 7 – x86_64 (https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm) を取得しました。

OSのバージョンの確認

$ cat /etc/os-release

wget コマンドにリンク URL を指定して、サーバにファイルを取得します。

$ wget https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

インストール

(エラー(You need to be root to perform this command.)が出ていたら、先頭に「sudo」を付けて実行)

$ yum localinstall pgdg-centos96-9.6-3.noarch.rpm

パッケージのインストール

$ yum install postgresql96-server postgresql96-contrib 

データベースの初期化

$ service postgresql-9.3 initdb

→×

$  /sbin/service postgresql-9.6 initdb

→×

$  /sbin/service postgresql96 initdb

→×

$  sudo /sbin/service postgresql96 initdb

→OK!

Data directory is not empty! [FAILED]となる場合

$ sudo su
$ cd /var/lib/
$ ls

alternatives  amazon  authconfig  cloud  dav  dbus  dhclient  docker  games  logrotate.status  misc  mysql  mysql-files  nfs  ntp  pgsql96  php  random-seed  rpm  rsyslog  stateless  update-motd  yum

$ cd /var/lib/pgsql96
$ ls

backups  data  pgstartup.log

$ mv data data.9.6.3
$ service postgresql96 initdb

Initializing database:                                     [  OK  ]

状態の確認

$ service postgresql96 status

postmaster is stopped

起動

$  sudo /sbin/service postgresql96 start

Starting postgresql96 service:                             [  OK  ]

常に起動させておくならこれ

$ sudo chkconfig postgresql96 on

状態の確認

$ service postgresql96 status

postmaster (pid  14912) is running...

サービス名の確認

$ sudo /sbin/chkconfig --list | grep postgresql

postgresql96    0:off   1:off   2:on    3:on    4:on    5:on    6:off

→サービス名:postgresql96

アンインストール

$ sudo yum remove postgresql96

今回はここまで!