编译安装PostgreSQL-9.5.3数据库

编译安装Postgresql-9.5.3数据库



安装准备工作


$ useradd -m postgres -G root -s /bin/bash  #增加postgres用户
$ passwd postgres  #修改密码
$ visudo #在第98行之后增加 postgres ALL=(ALL) ALL ,使得postgres用户具有超级用户权限
$ sudo yum update  #尝试更新

编译安装


下面所有的操作都在postgres用户下执行

  • 解压安装包 tar -xzvf postgresql-9.5.3.tar.gz
  • 进入解压后的postgres目录
  • 编译
$ ./configure --prefix=/usr/local/pgsql9.5.3 --with-prel --with-python
$ make
$ sudo make install #因为在postgres普通用户下执行,所以要使用sudo,安装完成,最后一行会出现Postgresql installation complete.
$ cd /usr/local
$ sudo ln -sf /usr/local/pgsql9.5.3 /usr/local/pgsql  #建立postgresql软连接,建立软连接是为了方便升级,如果有新的发行版,只需要下载编译之后将软连接指向最新的即可

配置


将下面的内容加到~/.bashrc中

$ PATH=$PATH:/usr/local/pgsql/bin  #配置postgresql的可执行路径
$ export LD_LIBRARY_PATH=/usr/local/pgsql/lib  #设置pg共享库的路径
$ source ~/.bashrc #在Linux下一般放在bashrc中,因为可能.profile和.bash_profile可能有时不能生效
$ cd /home/postgres   
$ mkdir pgdata  #创建pg数据库的数据目录
$ sudo vim ~/.bashrc #写入下面的环境变量

将下面的环境变量导入~/.bashrc中

$ export PGDATA=/home/postgres/pgdata

初始化数据库


$ initdb   #初始化数据库蔟 会返回SUCCESS字样

安装contrib目录下的工具


在postgresql-9.5.3目录下游contrib,进入安装即可。

Postgresql的简单配置


由于没有对Postgresql进行配置,所以会导致报错:could not create lock file “/var/run/postgresql/.s.PGsql.5432.lock”: Permission denied ,并且由于防火墙规则导致不能正确的执行,需要执行下面的过程。

$ sudo vim postgresql.conf   #修改其中的几个参数

将该文件中的以下几个参数进行修改

listen-addresses='*' #默认情况下是localhost,但是其它的主机不能远程登陆到该数据库,最简单的办法是设置为*,这样其它的主机就能访问该数据库
port=5432 #将端口改为5432
logging_collector = on #日志的收集一般是要打开的,所以需要将其设置为on
log_directory='pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%%M%S.log' #下面的代码都是为了每天生成一个新的日志文件
log_truncate_on_rotation = off
log_rotation_age = 1d
log_rotation_size = 0 
  • 接着在iptables中将5432端口释放,在/etc/sysconfig/iptables中写入下面的内容
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5432 -j ACCEPT

启动和停止数据库


$ pg_ctl -D 数据目录 start/stop #启动数据库服务器
$ psql    #进入postgresql数据库

启动之后出现下面的界面:

相关文章

来源:http://www.postgres.cn/docs/11/ 4.1.1. 标识符和关键词 SQL标识符和关键词必须以一个...
来源:http://www.postgres.cn/docs/11/ 8.1. 数字类型 数字类型由2、4或8字节的整数以及4或8...
来源:http://www.postgres.cn/docs/11/ 5.1. 表基础 SQL并不保证表中行的顺序。当一个表被读...
来源:http://www.postgres.cn/docs/11/ 6.4. 从修改的行中返回数据 有时在修改行的操作过程中...
来源:http://www.postgres.cn/docs/11/ 13.2.1. 读已提交隔离级别 读已提交是PostgreSQL中的...
来源:http://www.postgres.cn/docs/11/ 9.7. 模式匹配 PostgreSQL提供了三种独立的实现模式匹...