一、在/etc/yum.repos.d/CentOS-Base.repo 中的[base],[updates]中都增加:exclude=postgresql*
二、引入 PostgreSQL 9.4 Repository 官方的安装源
网址是: http://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-6.6-x86_64/pgdg-centos94-9.4-2.noarch.rpm
如果这个网址显示404 Not Found,可以进入到 http://download.postgresql.org/pub/repos/yum/9.4/redhat 目录之后,一步一步点进去,找到你要下载的那个rpm包的链接。
- rpm -Uvh http://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-6.6-x86_64/pgdg-centos94-9.4-2.noarch.rpm
三、安装
- yum install postgresql94 postgresql94-server postgresql94-contrib
四、初始化PostgreSQL数据库
- service postgresql-9.4 initdb
五、设置开机自启动
- service postgresql-9.4 start
- chkconfig postgresql-9.4 on
六、修改监听地址、端口
/var/lib/pgsql/9.4/data/postgresql.conf 中 把注释符号去掉,显示如下:
- listen_address=’*’
- port=5432
七、增加操作系统用户
- [root@wc1 ~]# adduser pgdbuser
八、创建postgresql数据库中的用户
在安装完postgresql数据库之后,会有一个默认的用户postgres,切换到postgres用户,然后执行psql命令,连接postgresql,然后再创建pgdbuser用户,最后退出
- [root@wc1 ~]# su – postgres
- -bash-4.1$ psql
- psql (9.4.11)
- Type “help” for help.
- ^
- postgres=# create user pgdbuser with superuser login password ‘pgdbuser’;
- CREATE ROLE
- postgres=# \q
九、修改/var/lib/pgsql/9.4/data/pg_hba.conf文件如下:
其中ident是linux系统下postgresql默认的local认证方式,通过操作系统用户映射的数据库用户,不需要输入密码,就可以登录。
而md5,不需要在操作系统层建立对应的同名的用户。
- # TYPE DATABASE USER ADDRESS METHOD
- # “local” is for Unix domain socket connections only
- local all all md5
- # IPv4 local connections:
- host all all 127.0.0.1/32 md5
- # IPv6 local connections:
- host all all ::1/128 md5
修改之后要重启服务:
- [root@wc1 Desktop]# service postgresql-9.4 restart
- Stopping postgresql-9.4 service: [ OK ]
- Starting postgresql-9.4 service: [ OK ]
十、登录postgresql
由于都是需要密码验证登录,所以当前os用户为root,需要指定登录的数据库、用户,然后按照提示输入密码后登陆。
接下来,创建数据库,显示当前数据库,切换到新建的库,创建表,插入数据,查询数据。
- [root@wc1 Desktop]# psql -d postgres -U pgdbuser
- Password for user pgdbuser:
- psql (9.4.11)
- Type “help” for help.
- postgres=# create database test;
- ERROR: database “test” already exists
- postgres=# create database xxx;
- CREATE DATABASE
- postgres=# select current_database();
- current_database
- ——————
- postgres
- (1 row)
- postgres=# \c xxx
- You are now connected to database “xxx” as user “pgdbuser”.
- xxx=# create table tb(id int);
- CREATE TABLE
- xxx=# insert into tb values(1);
- INSERT 0 1
- xxx=# select * from tb;
- id
- —-
- 1
- (1 row)
- xxx=#
如果把修改/var/lib/pgsql/9.4/data/pg_hba.conf,把第一个md5改成ident,那么登录时候,需要切换到上面创建的操作系统用户:pgdbuser,然后就可以直接登录。
- # TYPE DATABASE USER ADDRESS METHOD
- # “local” is for Unix domain socket connections only
- local all all ident
- # IPv4 local connections:
- host all all 127.0.0.1/32 md5
- # IPv6 local connections:
- host all all ::1/128 md5
- [root@wc1 Desktop]# psql -d postgres -U pgdbuser
- psql: FATAL: Peer authentication failed for user “pgdbuser”
- [root@wc1 Desktop]# su – pgdbuser
- [pgdbuser@wc1 ~]$ psql -d postgres
- psql (9.4.11)
- Type “help” for help.
- postgres=# \c xxx
- You are now connected to database “xxx” as user “pgdbuser”.
- xxx=# select * from tb;
- id
- —-
- 1
- (1 row)
- xxx=#