设为首页 加入收藏

TOP

postgresql9.4.4安装(一)
2015-11-21 02:07:16 来源: 作者: 【 】 浏览:1
Tags:postgresql9.4.4 安装

因为最近要做个数据研究,需要把数据入库,开源数据库中,同学们一般可能都会选择mysql,不过mysql 的一些函数能是在太累,因此我这边换成使用起来与oracle 更为相似的postgresql,近来这个数据库也是极其热门,上升速度很快。

下面做个编译与安装介绍,以下内容基本都来自德哥分享(http://blog.163.com/digoal@126/)的文档,感谢德哥的分享。

?

Postgresql下载网址:

http://www.postgresql.org/ftp/source/

?

这里我们选择最新的稳定版版postgresql-9.4.4 的源码

https://ftp.postgresql.org/pub/source/v9.4.4/postgresql-9.4.4.tar.bz2

下载后解压

tar jxvf postgresql-9.4.4.tar.bz2

因为postgresql不能用root 用户启动,需要为他重新新建一个用户

创建用户

?

useradd pg944

?

进入下载的目录

cd postgresql-9.4.4

编译,这里设置安装目录

./configure --prefix=/home/pg944/pgsql

完成后执行

gmake world
gmake install-world

下面初始化数据库相关配置

首先修改Linux内核相关参数调整

?

vi /etc/sysctl.conf

?

在最下面加上

kernel.shmmni = 4096
kernel.sem = 50100 64128000 50100 1280
fs.file-max = 7672460
net.ipv4.ip_local_port_range = 9000 65000
net.core.rmem_default = 1048576
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

然后继续修改

?

vi /etc/security/limits.conf

?

在最下面加上

* soft nofile 131072
* hard nofile 131072
* soft nproc 131072
* hard nproc 131072
* soft core unlimited
* hard core unlimited
* soft memlock 50000000
* hard memlock 50000000

设置防火墙

?

vi /etc/sysconfig/iptables

?

加上端口,记得在端口22的那个设置下加,不要加到最下面

?

-A RH-Firewall-1-INPUT -p tcp -m tcp--dport 1999 -j ACCEPT

?

重启防火墙

?

service iptables restart

?

现在初始化postgresql 用户的相关配置

?

su - pg944

?

添加环境变量

vi ~/.bash_profile
加上
export PGPORT=1999 
export PGDATA=/home/pg944/pg_root
export LANG=en_US.utf8
export PGHOME=/home/pg944/pgsql
export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
export DATE=`date +"%Y%m%d%H%M"`
export PATH=$PGHOME/bin:$PATH:.
export MANPATH=$PGHOME/share/man:$MANPATH
export PGUSER=postgres
export PGHOST=$PGDATA
alias rm='rm  -i'
alias ll='ls -lh'
export PGDATABASE=postgres

保存设置

?

source ~/.bash_profile

?

初始化数据库

?

initdb -D $PGDATA -E UTF8 --locale=C  -U postgres -W

?

这里要输入密码,和输入确认密码,输错会让你重新初始化

?

测试下

?

[pg944@slave1 ~]$ psql -V
psql (PostgreSQL) 9.4.4

?

这个时候$PGDATA这里就可以看到数据库文件了。下面挑几个重要的说说

ll $PGDATA
base  -- 这个目录对应pg_default表空间
global  --这个目录对应pg_global表空间,  存放集群中的共享对象例pg_database表, (select  relkind,relname from  pg_class where reltablespace = (select oid from  pg_tablespace where spcname=‘pg_global’) 
order by 1) , 包含控制文件等.
pg_clog -- 存储事务提交状态数据
pg_hba.conf -- 数据库访问控制文件
pg_log -- 数据库日志目录(根据配置定义,  可能没有这个目录)
pg_multixact -- 共享行锁的事务状态数据
PG_VERSION  -- 数据库版本
pg_xlog  -- 存储WAL文件
postgresql.conf -- 配置文件
postmaster.opts -- 记录数据库启动时的命令行选项
postmaster.pid -- 数据库启动的主进程信息文件(包括$PGDATA目录,  数据库启动时间, 监听端口ipc信息等)

继续

?

cd $PGDATA

?

启动数据库前修改一下$PGDATA下面的pg_hba.conf和postgresql.conf

pg_hba.conf用于配置控制访问数据库的来源

这里为了方便设置对所有地址开放,很不安全

?

host all all 0.0.0.0/0 md5

?

postgresql.conf是数据库的主配置文件, 最好也调整一下Linux内核参数.

下面内容会比较多

?

vi postgresql.conf

?

*****************************************************

监听IPv4的所有IP.

listen_addresses = '0.0.0.0'

?

最大允许1000个连接(测试的话100够了, 加大连接数同时需要调整shared buffer).

max_connections = 100

为超级用户保留10个可用连接.

superuser_reserved_connections = 10

默认的unix socket文件放在/tmp, 修改为$PGDATA, 以确保本地访问的安全性.

unix_socket_directory = '.'

?

默认的访问权限是0777, 修改为0700更安全.

unix_socket_permissions = 0

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇sqlserver、mysql、oracle各自的.. 下一篇SQL语言――高级方法

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: