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/ 在下载列表中根据 ...
随机推荐
- 【C++ STL】Vector
1.结构 vector模塑出一个动态数组,因此,它本身是“将元素置于动态数组中加以管理”的一个抽象概念.vector将其元素复制到内部的dynamic array中.元素之间总存在某种顺序,所以vec ...
- PowerDesigner16 活动图
活动是某件事情正在进行的状态.活动在状态机中表现为一个由一系列动作组成 的非原子的执行过程. 活动图是一种描述系统行为的图,它用于展现 参与行为的实体所进行的各种活动的顺序关系.活动图(Activit ...
- 转【jenkins插件】
开源版本的Jenkins 具有三大能力:Master-Slave的分布式构建调度能力.Pipeline编排能力.强大的开源生态(插件)能力. 2017年4月,Jenkins创始人KK(Kohsuke ...
- go通过名称来调用对应的方法
仅仅是为了学习go语言中的反射. package main import ( "errors" "fmt" "reflect" ) func ...
- NGINX: 配置 HSTS
参考: [ 浅析 HSTS - 博客园 ] [ HTTP HSTS协议和 nginx - 运维生存时间] [ HSTS ] Header: Strict-Transport-Security Stri ...
- 基本控件文档-UIKit结构图---iOS-Apple苹果官方文档翻译
本系列所有开发文档翻译链接地址:iOS7开发-Apple苹果iPhone开发Xcode官方文档翻译PDF下载地址 UIKit结构图 //转载请注明出处--本文永久链接:http://www.cnbl ...
- Tensorflow 2.0.0-alpha 安装 Linux系统
1.TensorFlow2.0的安装测试 Linux Tensorflow Dev Summit 正式宣布 Tensorflow 2.0 进入 Alpha 阶段. 基于 Anaconda 创建环境一个 ...
- Swift 特殊关键字 与符号
#available() 函数来检查API函数的可用性 // 判断当前版本是否 iOS8.0+,OSX10.10+以及以其他平台 if #available(iOS 8.0, OSX 10.10, * ...
- Python抓取花瓣网高清美图
一:前言 嘀嘀嘀,上车请刷卡.昨天看到了不错的图片分享网——花瓣,里面的图片质量还不错,所以利用selenium+xpath我把它的妹子的栏目下爬取了下来,以图片栏目名称给文件夹命名分类保存到电脑中. ...
- [LabVIEW架构]ActorFramework(二)
前言 在上一个文章中,我们介绍了一下LabVIEW中AF的基本概念,本讲将以上一次的例子来讲解LabVIEW中的实现 正文 范例说明 假定两个人,一个作为老师,一个作为学生.学生每天早上给老师发送一封 ...