CentOS7编译安装PostgreSQL
创建组和用户
groupadd postgres
useradd -g postgres postgres
passwd postgres
编译安装
yum install -y gcc gcc-c++ zlib-deve openssl-devel
tar xf postgresql-10.5.tar.gz
cd postgresql-10.5
./configure --prefix=/opt/app/postgresql --without-readline
make && make install
安装contrib目录下的一些工具,是第三方组织的一些工具代码,建议安装
cd contrib
make && make install
创建数据目录
mkdir -p /opt/data/postgresql
mkdir -p /opt/log/postgresql
chown postgres:postgres -R /opt/app/postgresql
chown postgres:postgres -R /opt/data/postgresql
chown postgres:postgres -R /opt/log/postgresql
添加环境变量
//切换用户
su - postgres
//在~.bash_profile的最后添加如下内容:vim ~/.bash_profile
export PGHOME=/opt/app/postgresql
export PGDATA=/opt/data/postgresql
export PATH=$PGHOME/bin:$PATH
export MANPATH=$PGHOME/share/man:$MANPATH
export LANG=en_US.utf8
export DATE=`date +"%Y-%m-%d %H:%M:%S"`
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
alias rm='rm -i'
alias ll='ls -lh'
//环境变量退出该用户会话,再次进入生效
初始化数据库
initdb -D /opt/data/postgresql
启动服务
pg_ctl -D /opt/data/postgresql -l /opt/log/postgresql/pgsql.log start|stop|restart
登录数据库
*使用 "psql 数据库名"登录数据库,缺省数据库名是,连接到默认的数据库postgres
*本地不用指定数据库
psql //创建测试数据库
create database test;
//切换到test数据库
\c test
//创建测试表
create table test (id integer, name text);
//出入测试数据
insert into test values (,'heboan');
insert into test values (,'何波安');
//选择数据
select * from test ;
//退出数据库
\q
修改PostgreSQL数据配置实现远程访问
vim /opt/data/postgresql/pg_hba.conf
*在文件的最下方加上下面的这句话(出于安全考虑,不建议这样配置)
host all all 0.0.0.0/ trust vim /opt/data/postgresql/postgresql.conf
*设置监听整个网络,查找“listen_addresses ”字符串
重启服务
pg_ctl -D /opt/data/postgresql -l /opt/log/postgresql/pgsql.log restart netstat -lntp|grep
tcp 0.0.0.0: 0.0.0.0:* LISTEN /postgres
设置数据库账号postgres的密码
postgres是默认数据库创建的超级管理员,上面我们配置远程访问,添加了一条
host all all 0.0.0.0/ trust
这会导致我们客户端使用用户postgres无需密码就可以直接连接上服务器,这是非常危险的!
这里我改成password,重启服务
host all all 0.0.0.0/ password
设置postgres密码
[postgres@c1 ~]$ psql
postgres=# ALTER role postgres WITH PASSWORD '';
这样远程客户端就需要使用密码123456来连接了。
大家可能会奇怪为什么在操作系统postgres用户下为什么不需要输入用户名和密码?这是因为,建立了一个与初始化数据库时的操作系统用户同名的数据库用户,同时中国用户是数据库超级用户,在这个OS用户下,登录数据库时执行的是操作系统认证,所以不需要用户名和密码,当然也可以通过修改pg_hba.conf文件来要求输入密码
pg_hba.conf是客户端认证配置文件,定义如何认证客户端
下面是常用的pg_hba.conf配置
# TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only
local all all ident # IPv4 local connections:
host all all 127.0.0.1/ md5 # IPv6 local connections:
host all all ::/ md5
TYPE定义了多种连接PostgreSQL的方式,分别是:“local”使用本地unix套接字,“host”使用TCP/IP连接(包括SSL和非SSL),“host”结合“IPv4地址”使用IPv4方式,结合“IPv6地址”则使用IPv6方式,“hostssl”只能使用SSL TCP/IP连接,“hostnossl”不能使用SSL TCP/IP连接
DATABASE指定哪个数据库,多个数据库,库名间以逗号分隔。“all”只有在没有其他的符合条目时才代表“所有”,如果有其他的符合条目则代表“除了该条之外的”,因为“all”的优先级最低。如下例:
local db1 user1 reject
local all all ident
这两条都是指定local访问方式,因为前一条指定了特定的数据库db1,所以后一条的all代表的是除了db1之外的数据库,同理用户的all也是这个道理。
USER指定哪个数据库用户(PostgreSQL正规的叫法是角色,role)。多个用户以逗号分隔。
CIDR-ADDRESS项local方式不必填写,该项可以是IPv4地址或IPv6地址,可以定义某台主机或某个网段。
METHOD指定如何处理客户端的认证。常用的有ident,md5,password,trust,reject。
md5是常用的密码认证方式,如果你不使用ident,最好使用md5。密码是以md5形式传送给数据库,较安全,且不需建立同名的操作系统用户。
password是以明文密码传送给数据库,建议不要在生产环境中使用。
trust是只要知道数据库用户名就不需要密码或ident就能登录,建议不要在生产环境中使用。
reject是拒绝认证。
CentOS7编译安装PostgreSQL的更多相关文章
- Centos7下安装postgresql(tar包形式安装)
Centos7下安装postgresql(tar包形式安装) 1.官网下载地址: https://www.postgresql.org/ftp/source/ 2.将下载来tar包上传到linux服务 ...
- CentOS7编译安装Nginx-1.8.1和编译参数
CentOS7编译安装Nginx-1.8.1和编译参数 Web服务器Nginx LNMP是一组众所周知的Web网站服务器架构环境,即由Linux+Nginx+MySQL+PHP(MySQL有时也 ...
- centos7编译安装MySQL5.7.9
title: centos7编译安装MySQL5.7.9 date: 2016-05-12 16:20:17 tags: --- Centos7编译安装mysql5.7.9 mysql5.7有更好的性 ...
- centos7 编译安装新版LNMP环境
centos7 编译安装新版LNMP环境 环境版本如下: 1.系统环境:Centos 7 x86_64 2.NGINX:nginx-1.11.3.tar.gz 3.数据库:mariadb-10.0.2 ...
- CentOS7编译安装httpd-2.4.41 php7.3
CentOS7编译安装httpd-2.4.41 php7.3 安装参考环境: CentOS Linux release 7.5.1804 (Core) 一.安装依赖包 httpd安装的依赖包 # yu ...
- Centos7 编译安装PHP7
Centos7 编译安装PHP7 编译安装的方式可以让组件等设置更加合理,但需要你对PHP的代码及各种配置非常的熟悉,以下为大致的安装流程,大家可以参考 1.下载编译工具 yum groupinsta ...
- Ubuntu下编译安装postgreSQL 10.5
Ubuntu下编译安装postgreSQL 10.5 ubuntu 16.04 LTS系统postgreSQL 10.5 安装包准备 1.从PostgreSQL官网下载PostgreSQL的安装包 安 ...
- CentOS7编译安装php7.1配置教程详解
这篇文章主要介绍CentOS7编译安装php7.1的过程和配置详解,亲测 ,需要的朋友可以参考. 1.首先安装依赖包: yum install libxml2 libxml2-devel openss ...
- Redhat 7.2 编译安装PostgreSQL 10
1.环境说明 CentOS7.2 postgresql10.4 2.下载 postgresql的官方地址 https://www.postgresql.org/ftp/source/ 在下载列表中根据 ...
随机推荐
- unity ugui缩放+移动
本文仅仅记录自己在工作中踩到的ugui的坑.并讲述如何填的坑. 干货罗列在前,不愿意看的,拿东西走人,自己研究: RectTransform m_Rect m_Rect.localPosition m ...
- hdu5828 Rikka with Sequence
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=5828 [题解] 考虑bzoj3211 花神游历各国,只是多了区间加操作. 考虑上题写法,区间全为1打标记 ...
- bzoj 1914: [Usaco2010 OPen]Triangle Counting 数三角形——极角排序
Description 在一只大灰狼偷偷潜入Farmer Don的牛群被群牛发现后,贝西现在不得不履行着她站岗的职责.从她的守卫塔向下瞭望简直就是一件烦透了的事情.她决定做一些开发智力的小练习,防止她 ...
- bzoj 1705: [Usaco2007 Nov]Telephone Wire 架设电话线——dp
Description 最近,Farmer John的奶牛们越来越不满于牛棚里一塌糊涂的电话服务 于是,她们要求FJ把那些老旧的电话线换成性能更好的新电话线. 新的电话线架设在已有的N(2 <= ...
- 【TYVJ】P1038 忠诚
[算法]线段树 #include<cstdio> #include<algorithm> using namespace std; ]; ,inf=0x3f3f3f3f; in ...
- vue_router添加点击事件
1.在vue学习中遇到给router-link 标签添加事件@click .@mouseover等无效的情况 原来的代码: <router-link to='/SelectPage' @clic ...
- hdu 1395 2^x mod n = 1(暴力题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1395 2^x mod n = 1 Time Limit: 2000/1000 MS (Java/Oth ...
- 【swupdate文档 一】嵌入式系统的软件管理
嵌入式系统的软件管理 嵌入式系统变得越来越复杂, 它们的软件也反映了这种复杂性的增加. 为了支持新的特性和修复,很有必要让嵌入式系统上的软件 能够以绝对可靠的方式更新. 在基于linux的系统上,我们 ...
- LINUX内核面试题摘选
转载:http://blog.csdn.net/zm1_1zm/article/details/77231197 1) Linux中主要有哪几种内核锁? 答:Linux的同步机制从2.0到2.6以来不 ...
- Tabular DataStream protocol 协议
Tabular DataStream protocol 协议 Freetds 创建过程 https://wenku.baidu.com/view/2076cbfaaef8941ea76e0576.ht ...