最近学习postgresql数据库,直接用服务器的包管理器,版本选择处理起来很麻烦,所以查了下资料,选择用源码安装,这里做个笔记记录下(本文基于Ubantu 14.04.5),方便自己和他人,由于本人很菜,有不对的地方还往大神批评指正,谢谢!
ps:由于刚开始写博客,目前是对以前学习的只是进行一个总结性的记录,可能会涉及到一些和大神作品雷同的内容,如有,请告诉我,谢谢!
step1-安装前准备
安装依赖包
sudo apt-get install libreadline6-dev
sudo apt-get install zlib1g-dev
sudo apt-get install libssl-dev
下载源码
源码下载链接可以到官网上找就行了,
eg:https://www.postgresql.org/ftp/source/
下载后解压,安装就行了,如下:
sudo tar xf postgresql-9.5.2.tar.gz
cd postgresql-9.5.2
./configure --prefix=/usr/local/pgsql --with-pgport=5432 --with-openssl
step2-开始安装和配置
编译安装
make && sudo make install
安装contrib
cd contrib
make
sudo make install
添加用户和组
建立一个超级用户用于管理数据库
1.添加用户
sudo adduser postgres
2.建立数据库数据目录并授权
sudo mkdir /usr/local/pgsql/data
sudo chown -R postgres:postgres /usr/local/pgsql/data
su postgres
3.初始化数据库并启动数据库
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data/
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &
4.将启动脚本加入到系统服务
sudo cp /usr/local/src/postgresql-9.5.2/contrib/start-scripts/linux /etc/init.d/postgresql
sudo chmod +x /etc/init.d/postgresql
5.设置为开机启动
sudo update-rc.d postgresql defaults
经过以上步骤,数据库已经安装配置完成,可以通过命令查看其运行状态
允许远程访问设置
安装PostgreSQL数据库之后,默认只能本地访问连接。如果想在其他主机上访问PostgreSQL数据库服务器,就需要进行相应的配置。需要修改data目录下的pg_hba.conf和postgresql.conf,其中pg_hba.conf是用来配置对数据库的访问权限,postgresql.conf文件用来配置PostgreSQL数据库服务器的相应的参数。步骤如下:
- 修改postgresql.conf文件,将数据库服务器的监听模式修改为监听所有主机发出的连接请求
定位到#listen_addresses=‘localhost’。PostgreSQL安装完成后,默认是只接受来在本机localhost的连接请 求。将行开头都#去掉,将行内容修改为listen_addresses=’*'来允许数据库服务器监听来自任何主机的连接请求。 - 修改pg_hba.conf文件,配置用户的访问权限(#开头的行是注释内容):
#TYPE DATABASE USER CIDR-ADDRESS METHOD
#IPv4 local connections:
host all all 127.0.0.1/32 md5
host testdb postgres 192.1.1.2/32 md5
以上红色部分为新添加的项。
以上内容需要注意以下两点:
1. 数据库名与用户名注意大小写,PostgreSQL是区分大小的;
2. CIDR-ADDRESS(用户的IP范围)的值的格式是:IP/数值
数值取值范围为:0,8,16,24,32 即表示掩码bit的个数;
例如:
32 -> 192.168.1.1/32 表示必须是来自这个IP地址的访问才合法;
24 -> 192.168.1.0/24 表示只要来自192.168.1.0 ~ 192.168.1.255的都合法;
16 -> 192.168.0.0/16 表示只要来自192.168.0.0 ~ 192.168.255.255的都合法;
8 -> 192.0.0.0/16 表示只要来自192.0.0.0 ~ 192.255.255.255的都合法;
0 -> 0.0.0.0/0 表示全部IP地址都合法,/左边的IP地址随便了只要是合法的IP地址即可;
完成上面两个配置文件的修改以后,为了让配置生效,需要重新启动PostgreSQL数据库服务器。
相关命令
查看postgresql服务
sudo service postgresql status
查看数据库进程运行状态
ps aux | grep postgres
数据库启动停止等
启动postgresql数据库
sudo /etc/init.d/postgresql start
重启postgresql数据库
sudo /etc/init.d/postgresql restart
停止postgresql数据库
sudo /etc/init.d/postgresql stop
查看postgresql数据库状态
sudo /etc/init.d/postgresql status
参考
博客同步自:个人博客主页