编译安装Postgresql-9.5.3数据库
安装准备工作
- 首先,下载源代码,源代码的下载地址为:https://www.postgresql.org/ftp/source/ ,在此页面选择合适的发行版,但是不要下载测试版本的数据库,不稳定或者可能存在没有修复的bug。
- 接着,创建一个postgres用户,并将其添加到超级用户中
$ 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数据库
启动之后出现下面的界面: