前回、自分のPCにセットアップしたVagrant上のCentOS7.0へPostgresをインストールしようと思います。
PostgreSQLは、現時点での最新9.4.1で。
参考にさせていただいたサイトは、Installing PostgreSQL 9.4 And phpPgAdmin In CentOS 7/6.5/6.4です。
(1) yumリポジトリの設定追加(postgresql9.4.1)
# rpm -Uvh http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-1.noarch.rpm Retrieving http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-1.noarch.rpm warning: /var/tmp/rpm-tmp.nimNLJ: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY Preparing... ################################# [100%] Updating / installing... 1:pgdg-centos94-9.4-1 ################################# [100%] #
(2) yum update
# yum update
(3) postgresql94インストール
# yum install postgresql94-server postgresql94-contrib [...] Installed: postgresql94-contrib.x86_64 0:9.4.1-1PGDG.rhel7 postgresql94-server.x86_64 0:9.4.1-1PGDG.rhel7 Dependency Installed: libxslt.x86_64 0:1.1.28-5.el7 postgresql94.x86_64 0:9.4.1-1PGDG.rhel7 postgresql94-libs.x86_64 0:9.4.1-1PGDG.rhel7 Complete!
(4) データベースクラスタ初期化
# /usr/pgsql-9.4/bin/postgresql94-setup initdb Initializing database ... OK
(5) postgresサービス化 / 開始
# systemctl enable postgresql-9.4 ln -s '/usr/lib/systemd/system/postgresql-9.4.service' '/etc/systemd/system/multi-user.target.wants/postgresql-9.4.service' # systemctl start postgresql-9.4
(6) Iptables設定
- 自分の環境では、firewall機能は、前回無効にしていました。
# systemctl list-unit-files | grep firewall firewalld.service disabled << firewallありの場合の設定 >> # firewall-cmd --permanent --add-port=5432/tcp # firewall-cmd --reload
(7) 接続確認
# su - postgres Last login: Tue Feb 10 23:55:53 EST 2015 on pts/0 -bash-4.2$ psql psql (9.4.1) Type "help" for help. postgres=# \q
(8) ユーザーpostgresのパスワード設定
# su - postgres -bash-4.2$ psql psql (9.4.1) Type "help" for help. postgres=# \password postgres Enter new password: ******** Enter it again: ******** postgres=# \q
(9) postgresアクセス許可設定
pg_hba.conf編集
# vim /var/lib/pgsql/9.4/data/pg_hba.conf [...] # IPv4 local connections: host all all 127.0.0.1/32 md5 host all all 192.168.0.0/16 md5 # add [...]
postgresql.conf編集
# vim /var/lib/pgsql/9.4/data/postgresql.conf [...] listen_addresses = '*' [...] port = 5432 [...]
postgresql再起動
# systemctl restart postgresql-9.4
(10) DB作成
Version確認
postgres=# select version(); version --------------------------------------------------------------------------------------------------------------- PostgreSQL 9.4.1 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-16), 64-bit (1 row) postgres=#
DB作成
postgres=# create database metaldb; CREATE DATABASE postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- metaldb | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | 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 (4 rows)
テーブル作成
postgres=# \connect metaldb You are now connected to database "metaldb" as user "postgres". metaldb=# CREATE TABLE band metaldb-# ( metaldb(# id serial NOT NULL, metaldb(# name character varying(100), metaldb(# create_ts timestamp, metaldb(# update_ts timestamp, metaldb(# CONSTRAINT band_pkey PRIMARY KEY (id) metaldb(# ) metaldb-# WITH ( metaldb(# OIDS=FALSE metaldb(# ); ALTER TABLE band CREATE TABLE metaldb=# ALTER TABLE band metaldb-# OWNER TO postgres; ALTER TABLE
レコード追加
metaldb=# INSERT INTO band (name, create_ts) metaldb-# VALUES('Ozzy Osbourne band',current_timestamp); INSERT 0 1 metaldb=#
(11) PgAdminⅢでアクセス確認
無事に、metaldbのbandテーブルを確認できました!