> CentOS > CentOS教程 >

yum 安装 Postgresql 9.4 on CentOS 6.5,指定数据目录

补充更新:指定数据目录,因为默认centos安装postgresql数据库安装在了系统盘,然而我的系统盘很小。

参考:

http://www.tuicool.com/articles/iArAba

http://crashmag.net/changing-the-default-postgresql-data-folder-pgdata




(1) yum install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.4-1.noarch.rpm

(2) yum install postgresql94-server postgresql94-contrib

(3) 如果不想使用默认的数据目录,那么可以自己指定;

(3.1) 创建目录 /data/pg_data,(也许要修改权限:chown -R postgres:postgres /data/pg_data)

进入目录"/etc/sysconfig/pgsql",创建文件"postgresql-9.4"(文件名要和数据库的服务名一致)

    写入内容:PGDATA=/data/pg_data

(4) 执行/etc/init.d/postgresql-9.4 initdb 或者

(5) 启动服务

service postgresql-9.4 start

chkconfig postgresql-9.4 on

-----------------------------------------------------------------------------------------------------------------------------

参考:

(1) http://www.postgresql.org/download/linux/redhat/

(2) http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html

(3) http://www.cnblogs.com/mchina/archive/2012/06/06/2539003.html

(4) http://jingyan.baidu.com/article/48a42057dfeeb2a92525047e.html

(5) PostgreSQL文档的 服务器管理 --> 用户认证 章节: 主要理解ident peer md5 trust方式的区别

-------------------------------------------------------------------------------------------------------------------------------

   (1)需要使用 Root 权限安装

    su - root

   

   (2)安装

yum install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm

        yum install postgresql94-server postgresql94-contrib




   (3)初始化数据库

/etc/init.d/postgresql-9.4 initdb   或者  service postgresql-9.4 initdb

    // 备注:(1) 这个命令需要稍微等几秒  (2) 默认安装的目录是 /var/lib/pgsql/9.4




   (4)chkconfig postgresql-9.4 on

    // 这个是干啥的? 官方文档写了要执行这个命令


   (5)启动数据路服务

    /etc/init.d/postgresql-9.4   start


    // 启动前后,可以看看端口号使用情况  netstat  -an  |  grep   543


   (6) 初次安装后

默认生成一个名为postgres的数据库和一个名为postgres的数据库用户。这里需要注意的是,同时还生成了一个名为postgres的Linux系统用户。


   (7)添加一个专门操作数据库的用户(不要使用postgres用户,权限太大?,这一步的作用是什么?)

   [root@localhost ~]# adduser dbuser

  

   (8)切换至postgres用户

[root@localhost ~]# su - postgres

-bash-4.1$


   (9)使用psql命令登录PostgreSQL控制台

    -bash-4.1$ psql

psql (9.4.1)

Type "help" for help.


postgres=#


备注:这时相当于系统用户postgres以同名数据库用户的身份,登录数据库,这是不用输入密码的。

     如果一切正常,系统提示符会变为"postgres=#",表示这时已经进入了数据库控制台。


(9.1) 为postgres用户设置密码

postgres=# \password postgres

Enter new password:

Enter it again:


(9.2) 创建数据库用户dbuser(刚才创建的是Linux系统用户),并设置密码。(没有系统用户dbuser的话,无法创建数据库的同名用户?)

postgres=# CREATE USER dbuser WITH PASSWORD '123456';

CREATE ROLE


(9.3) 创建用户数据库 "testdb1",并指定所有者为dbuser

CREATE DATABASE testdb1 OWNER dbuser;


(9.4) 将"testdb1"数据库的所有权限都赋予dbuser,否则dbuser只能登录控制台,没有任何数据库操作权限。

GRANT ALL PRIVILEGES ON DATABASE testdb1 to dbuser;


(9.5) 使用\q命令退出控制台(也可以直接按ctrl+D)

(责任编辑:IT)