CentOS6下最新版PostgreSQL的安装及设置

CentOS默认Yum源安装的PostgreSQL版本仍然停留在8.x。如果不想手工编译,又想安装使用最新版的PostgreSQL的话,可以通过引用PostgreSQL官方的Yum源进行安装。

一、安装PostgreSQL

  1. 在CentOS默认的Yum源文件里屏蔽对PostgreSQL的获取

    # vi /etc/yum.repos.d/CentOS-Base.repo
    

    在[base]以及[updates] 部分的最下方,各增加一行

    exclude=postgresql*
    
  1. 添加PostgreSQL官方的Yum源文件

    # yum localinstall http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.4-1.noarch.rpm
    
  2. 查找最新版本

    # yum list postgres*
    
  3. 安装最新版本(例如安装9.4)

    # yum -y install postgresql94-server postgresql94 postgresql94-libs postgresql94-contrib postgresql94-devel
    

    yum安装后的文件路径如下:

    • 执行文件:/usr/pgsql-9.4/bin/
    • 默认数据库文件目录:/var/lib/pgsql/9.4/data
    • 启动脚本:/etc/init.d/postgresql-9.4

    设置开机自启动:

    # chkconfig postgresql-9.4 on
    

二、初始化数据库

**注意:**由于PostgreSQL在创建数据库时,会参照/etc/sysconfig/i18n里面的LANG参数。而Linux系统这个参数一般默认为c,所以如果直接用initdb命令的话,创建的PostgresQL数据库的编码为ascii编码.这会给将来的unicode应用造成一些潜在的麻烦,所以:

  • 要么将系统设置成参数,LANG=“zh_CN.UTF8”
  • 如果不想修改系统的语言参数,需要在initdb命令初始化数据库时候,指定编码格式及字符集。
  1. 修改postgres用户的密码,然后以postgres身份登陆

    # passwd postgres
    # 修改密码
    
    # su - postgres
    
  2. 增加postgres用户的path路径

    $ cd
    $ echo 'export PATH=$PATH:/usr/pgsql-9.4/bin' >> .bash_profile
    $ source .bash_profile 
    
  3. 初始化数据库。根据部署的需要,设置相应的UTF8及字符集环境

    简体中文:zh_CN.UTF8,日文: ja_JP.UTF8; 英文:en_US.UTF8 如果初始化错了,可以使用直接删除已经创建的目录,然后重新初始化: $ rm /var/lib/pgsql/9.4/data -rf

    # 常用的简体中文
    $initdb -E 'UTF-8' --lc-collate='zh_CN.UTF8' --lc-ctype='zh_CN.UTF8'
    

三、初始化数据库

  1. 配置PosgtreSQL的启动参数

    $ cd 9.4/data/
    $ vi postgresql.conf
    

    修改成listen_addresses = '*',表示监听所有IP地址(需要加强防火墙设置,否则有安全隐患)

    修改成log_filename = 'postgresql-%Y%m%d.log',指定日志文件的格式为2016-04-01.log这样的日期格式。

  2. 配置PosgtreSQL的用户登录验证方式

    $ vi pg_hba.conf
    

    将默认的peer的认证方式全部注释掉,在文件的末尾重新添加md5方式,例如:

    local   all             postgres                                peer
    local   all             all                                     md5
    host    all             all             192.168.0.0/24          md5
    
  3. 启动PosgtreSQL服务

    root权限下

    # service postgresql-9.4 start    
    

四、开始使用PostgreSQL

切换到postgres账号终端下

# su - postgres
  1. createdb命令:创建数据库

    $ createdb dbtest
    
  2. createuser命令:创建账号

    $ createuser dbuser1
    
  3. psql终端下:设置/修改DB用户的密码

    $ psql -U postgres
    

    在psql终端下,通过以下命令修改密码

    postgres=#  ALTER USER dbuser1 encrypted password 'mypass';
    
  4. psql终端下查看数据库

    postgres=# \l
    
  5. 修改数据库的拥有者

    postgres=# ALTER DATABASE dbtest OWNER TO dbuser1;
    
  6. 退出psql终端

    postgres=# \q
    
  7. 指定用户名及数据库登陆psql

    $ psql -U dbuser1 dbtest
    

Postgres的资料

Share Comments
comments powered by Disqus