PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统,官网https://www.postgresql.org/download/,本文仅提供在centos7系统环境下安装postgres数据库。
PostgreSQL数据库在安装过程中会自动创建postgres用户,家目录:/var/lib/postgresql,我们也可以提前创建postgres用户,修改用户家目录。
安装postgresql:
1.检查系统是否存在postgres数据库
rpm -qa | grep postgres -->检查是否有安装
rpm -qal | grep postgres -->检查安装位置
rpm -e postgresql_name -->卸载数据库(如果有),需替换具体的数据库版本名称,可同时卸载多个
2.创建postgres用户(此过程可省略)
groupadd postgres -->创建组
useradd -g postgres postgres -->创建用户,属组为postgres
passwd postgres -->设置用户postgres密码
mkdir /home/postgres_data
chown postgres:postgres
3.安装数据库
yum install https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm
安装PostgreSQL服务器和第三方扩展包
yum install postgresql95-server postgresql95-contrib -y
也可以选择离线安装,在官网下载系统对应的rpm包。
4.配置postgres数据库数据存储位置,如果第二步没有做此过程可跳过。
切换用户postgres
vi .bash_profile
export PATH=$PATH:/usr/pgsql-95/bin
export LD_LIBRARY_PATH=/usr/pgsql-9.5/lib
export PGDATA=/home/postgres_data
5.修改配置文件/var/lib/pgsql/9.5/data/postgresql.conf,去掉注释符“#”
listen_addressed='*'
port=5432
passwork--encryption=on
6.修改配置文件/var/lib/pgsql/9.5/data/pg_hba.conf
IPV4所在一行修改ident为trust
IPV4下新增一行host all all 0.0.0.0/32 md5
7.修改配置文件/usr/lib/systemd/system/postgresql-9.5.service,如果过程2没有做此过程可生省略。
Environment=PGDATA=/home/postgres_data
8.切root用户
初始化数据库(以postgresql用户初始化数据库会导致服务启动失败)
# /usr/pgsql-9.5/bin/postgresql95-setup initdb
起服务
# systemctl enable postgresql-9.5.service
# systemctl start postgresql-9.5.service
# systemctl status postgresql-9.5.service
输出应为:
postgresql-9.5.service - PostgreSQL 9.5 database server
Loaded: loaded (/usr/lib/systemd/system/postgresql-9.5.service; enabled)
Active: active (running) since Fri 2016-02-19 00:01:13 UTC; 6min ago
Process: 10809 ExecStart=/usr/pgsql-9.5/bin/pg_ctl start -D ${PGDATA} -s -w -t 300 (code=exited, status=0/SUCCESS)
Process: 10802 ExecStartPre=/usr/pgsql-9.5/bin/postgresql95-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
Main PID: 10811 (postgres)
CGroup: /system.slice/postgresql-9.5.service
├─10811 /usr/pgsql-9.5/bin/postgres -D /var/lib/pgsql/9.5/data
├─10812 postgres: logger process
├─10814 postgres: checkpointer process
├─10815 postgres: writer process
├─10816 postgres: wal writer process
├─10817 postgres: autovacuum launcher process
└─10818 postgres: stats collector process
9.数据库设置
psql
#psql -U postgres并回车,登录数据库。
#ALTER USER postgres with encrypted password '1234';
#select * from pg_database;
#\q