postgreSQL11.6インストール
CentOS用のレポジトリ設定
各OS用のレポジトリ一覧
PostgreSQL RPM Repository (with Yum)
centos用のレポジトリをインストール
yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
PostgreSQLのインストール
postgresqlをインストールする。バージョン指定する場合は末尾にバージョンを指定するとよい。11.6なら以下のようにする。
yum install postgresql11-server-11.6 postgresql11-contrib-11.6
自動起動する場合サービスを有効にする。
systemctl enable postgresql-11.service
データベースクラスタの作成
データベースの作成場所をデフォルトから変更
vi /usr/lib/systemd/system/postgresql-11.service
変更前) Environment=PGDATA=/var/lib/pgsql/11/data/ 変更後) Environment=PGDATA=/opt/data/
systemctl daemon-reload
データベースクラスタの作成
PGSETUP_INITDB_OPTIONS="-E UTF8 --locale=C" /usr/pgsql-11/bin/postgresql-11-setup initdb
パス設定
su - postgres
vi /var/lib/pgsql/.pgsql_profile
PATH=/usr/pgsql-11/bin:$PATH MANPATH=/usr/pgsql-11/share/man:$MANPATH PGDATA=/opt/data export PATH MANPATH PGDATA
postgresqlの起動
systemctl start postgresql-11
postgresユーザならpg_ctl start
でもOK
ユーザとDBを作成
-bash-4.2$ createuser --login --pwprompt testuser Enter password for new role: Enter it again: -bash-4.2$ createdb --owner=testuser testdb -bash-4.2$ psql -l
パスワード変更するなら以下でもOK
# testuserのパスワード変更 postgres=# \password testuser # postgresユーザのパスワード変更(postgresユーザでログインした場合) postgres=# \password
リモート接続を許可
世界中からアクセス可能
vi /opt/data/postgresql.conf
変更前) #listen_addresses = 'localhost' 変更後) listen_addresses = '*'
アクセス制御
ローカルからは自由にアクセス、リモートはパスワードアクセスする場合
# TYPE DATABASE USER ADDRESS METHOD local all all trust host all all 127.0.0.1/32 trust host all all 0.0.0.0/0 md5
変更を反映
pg_ctl reload
だとpostgresql.confの変更が反映されないっぽい。systemctl restart postgresql-11
で反映した。
ログイン
以下を参考にしました。