编译安装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数据库

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

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...