1、Linux下源码编译安装PostgreSQL
操作系统:Centos7
PostgreSQL的特性
PostgreSQL是一种几乎可以运行在各种平台上的免费的开放源码的对象关系数据库管理系统,拥有与企业级数据库相媲美的特性,如完善的SQL标准支持、多版本并发控制、时间点恢复、表空间机制、异步复制、嵌套事务、在线热备份、一个复杂的查询优化器、预写日志容错技术。
它支持国际字符集、多字节字符编码、Unicode,并且对格式化、排序、大小写敏感提供本地化支持。
PostgreSQL在管理大数据方面有良好的可扩展性,对并发用户管理具有自适应性。现在已经出现具有管理超过4万亿字节数据能力的实用版本产品。
开放特性:PostgreSQL内置了丰富的数据类型,如任意精度的数值、无限制长度的文本、几何图元、IP地址、数组等;同时还允许用户定义基于正规SQL类型的新类型,让数据库自身理解复杂数据,自定义类型中还可以包含继承关系。用户可以为数据库内几乎所有的对象定义新的类型,如索引、操作符(可重载现有操作符)、聚集函数、数据域、数据类型转换、会话(编码转换)等。
可编程性:PostgreSQL同样拥有大量的编程接口供用户开发使用,如ODBC、JDBC(Java)、Libpq(C/C++)等。
可定制性:PostgreSQL拥有广泛的编程语言支持来实现函数功能,包括内置的PL/PGSQL过程语言,PL/Perl、PL/PHP、PL/Python、PL/Ruby、PL/Tcl等脚本语言,以及Java、C/C++等高级编程语言。
函数的输出是一系列行类型的集合,可以在查询中当做表来使用,函数也可以被定义成以创建者或者调用者的身份运行。在其他的数据库产品中,函数也会被称为“存储过程”。
索引手段:用户可以自定义索引方法或者使用内置B-Tree索引、Hash表索引、GiST索引、GIN索引。GiST索引不是某种特定的索引类型,而是一种通用索引基础结构,可以在这种结构上实现很多不同的索引策略。
PostgreSQL同时还支持如下功能:反向索引检索、表达式索引、部分索引、位图索引扫描。
多种身份认证方式:PostgreSQL中可以使用数据库用户/角色、操作系统、PAM、Kerberos等方式,根据配置文件(pg_hba.conf)中的设置执行对应的身份认证。
PostgreSQL提供经济有效的、易于部署的复杂数据管理基础设施,在工业界、互联网得到广泛应用,在许多国际化大公司的应用中取得了良好的效果。
PostgreSQL经过多年的发展,得到了学术界和工业界的充分认可。获得2008 Developer.com编辑选择的数据库工具方向的年度产品,2000年、2003~2006年荣获Linux Journal杂志编辑评选的“最佳数据库”奖,2004年获ArsTechnica最佳服务器应用奖,2002年获Linux New Media杂志编辑评选的“最佳数据库”奖,1999年获Linux World杂志评选的“最佳数据库”奖等多项荣誉。
下载源码包
https://ftp.postgresql.org/pub/source/v12.2/postgresql-12.2.tar.gz
解压
# mkdir -p /application/
# mkdir -p /tools/
# cd /tools/
# tar -xzf postgresql-12.2.tar.gz
# cd postgresql-12.2/
安装依赖包
# yum install readline-devel -y
# yum install zlib-devel -y
指定安装路径
编译安装
# make && make install
用户权限
创建虚拟用户
# useradd -M -s /sbin/nologin postgres
说明:创建postgres用户为虚拟用户时,因没有家目录,会报“could not change directory to "/root": 权限不够”的提示,忽略即可, 在postgres用户有家目录的情况下,不会报该提示。
创建数据库文件目录
# mkdir /application/postgresql-12.2/data/
用户文件访问权限变更
# chown -R postgres.postgres /application/postgresql/
vim /etc/profile
export PGHOME=/application/postgresql
export PGDATA=/application/postgresql/data
export PATH=$PGHOME/bin:$PATH
source /etc/profile#说明:PGDATA:环境变量在postgresql.conf配置文件中会被引用
# su - postgres -s /bin/bash
数据库初始化
# initdb -D /application/postgresql/data/
配置修改
配置数据库允许访问的IP
配置IP都可以连接数据库(如需要所有IP都可以访问则对应为0.0.0.0/0),此处认证类型选择的是MD5,可参考官方文档认证类型,选择适合的认证方式
# TYPE DATABASE USER ADDRESS METHOD# "local" is for Unix domain socket connections onlylocalallall trust
# IPv4 local connections:hostallall 127.0.0.1/32 trust
# IPv6 local connections:hostallall ::1/128 trust
# Allow replication connections from localhost, by a user with the# replication privilege.local replication all trust
host replication all 127.0.0.1/32 trust
host replication all ::1/128 trust
host all all 0.0.0.0/0 md5
说明:
TYPE:pg的连接方式,local:本地unix套接字,host:tcp/ip连接
DATABASE:指定数据库
USER:指定数据库用户
ADDRESS:ip地址,可以定义某台主机或某个网段,32代表检查整个ip地址,相当于固定的ip,24代表只检查前三位,最后一位是0~255之间的任何一个
METHOD:认证方式,常用的有ident,md5,password,trust,reject。
md5是常用的密码认证方式。
password是以明文密码传送给数据库,建议不要在生产环境中使用。
trust是只要知道数据库用户名就能登录,建议不要在生产环境中使用。
reject是拒绝认证。
配置监听地址、连接端口号、打开日志。
# vim /application/postgresql/data/postgresql.conf
listen_addresses配置监听地址范围,改为*则为所有
port 默认为5432
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 5432 # (change requires restart)
#------------------------------------------------------------------------------
# REPORTING AND LOGGING
#------------------------------------------------------------------------------
# - Where to Log -
log_destination = 'stderr' # Valid values are combinations of
# stderr, csvlog, syslog, and eventlog,
# depending on platform. csvlog
# requires logging_collector to be on.
# This is used when logging to stderr:
logging_collector = on # Enable capturing of stderr and csvlog
# into log files. Required to be on for
# csvlogs.
# (change requires restart)
# These are only used if logging_collector is on:
log_directory = 'log' # directory where log files are written,
# can be absolute or relative to PGDATA
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,
启动数据库服务
# pg_ctl start
# 关闭数据库服务为 pg_ctl stop

# -bash-4.2$ netstat -tunlp | grep 5432
![]()
修改密码
# psql
# \password postgres
# 修改数据库 postgres 用户密码
使用 Navicat Premium 远程连接 postgreSQL 数据库
# -sh-4.2$ psql --help
1、Linux下源码编译安装PostgreSQL的更多相关文章
- Linux下源码编译安装PostgreSQL数据库
我使用的Postgres的源码版本为 postgresql-9.3.5.系统为 CentOS6.5 ,是64位. 下载以后直接阅读其中的 README然后阅读其中的INSTALL,按照其中将的步骤做就 ...
- Linux下源码编译安装rpy2
R(又称R语言)是一款开源的跨平台的数值统计和数值图形化展现工具.rpy2是Python直接调用R的第三方库,它可以实现使用python读取R的对象.调用R的方法以及Python与R数据结构转换等.这 ...
- Linux 下源码编译安装 vim 8.1
前言 目前 linux 的各个发行版基本上都是带了一个 vi 编辑器的,而本文要说的 vim 编辑器对 vi 做了一些优化升级,更好用.当我们需要远程操作一台 linux 服务器的时候,只能使用命令行 ...
- 在Linux下源码编译安装GreatSQL/MySQL
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 本 ...
- linux下源码编译安装mysql
1.安装依赖的包: yum install -y gdb cmake ncurses-devel bison bison-devel 2.创建mysql安装目录和数据文件目录 mkdir -p /us ...
- Linux下源码编译安装MySql,centeros7
1. 安cmake工具 # yum install -y cmake 2. 创建mysql用户 #useradd -s /sbin/nologin mysql //设置为非登陆用户(安全) 3. ...
- Linux下源码编译安装MySQL 5.5.8
准备工作: 新建用户和用户组 groupadd mysql useradd -g mysql mysql 1:下载: bison-2.4.2.tar.bz2 cmake-2.8.3.tar.gz ma ...
- Linux 从源码编译安装 OpenSSH
https://blog.csdn.net/bytxl/article/details/46639073 Linux 从源码编译安装 OpenSSH以及各问题解决 2015年06月25日 17:37: ...
- CentOS 6.6 下源码编译安装MySQL 5.7.5
版权声明:转自:http://www.linuxidc.com/Linux/2015-08/121667.htm 说明:CentOS 6.6 下源码编译安装MySQL 5.7.5 1. 安装相关工具# ...
随机推荐
- 基于Hadoop集群搭建Hive安装与配置(yum插件安装MySQL)---linux系统《小白篇》
用到的安装包有: apache-hive-1.2.1-bin.tar.gz mysql-connector-java-5.1.49.tar.gz 百度网盘链接: 链接:https://pan.baid ...
- xsos:一个在Linux上阅读SOSReport的工具
xsos:一个在Linux上阅读SOSReport的工具 时间 2019-05-23 14:36:29 51CTO 原文 http://os.51cto.com/art/201905/596889 ...
- JNLP配置WIN10
依据网友的反响和我自己的考查,发觉JNLP的情况是大多数网友的困惑之处,针对此问题小编给大总结整理了(关键此)的处理技巧,并对它进以加工改善,整理出JNLP的详细教程,只用你按照1:首先配置电脑的ja ...
- Rust 多态
Rust 多态 分发 多态的上下文中的方法解析过程被称为分发,调用该方法称为分发化,在支持多态的主流语言中,分发可以通过以下任意一种方式进行. 静态分发 当在编译期决定要调用的方法时,它被称为静态分发 ...
- OpenStack平台功能性测试工具Tempest安装
社区对OpenStack平台功能性的测试工具采用Tempest,性能测试采用Rally. 1.什么是Tempest tempest├── api # API的测试集├── cli # OpenStac ...
- # useradd -u 700 -g users vbird2
[root@linux ~]# ls -l /homedrwxr-xr-x 3 vbird1 vbird1 4096 Aug 30 17:33 vbird1[root@linux ~]# grep v ...
- Redis 为什么使用跳跃表
引言 跳跃表是一种有序的数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的. 什么是跳跃表 对于一个单链表来讲,即便链表中存储的数据是有序的,如果我们要想在其中查找某个 ...
- idea 使用Springboot 编译报错
报错信息如下 Argument for @NotNull parameter 'url' of org/jetbrains/jps/model/impl/JpsUrlListImpl.addUrl m ...
- Docker学习(3) 容器基本操作
容器的基本操作
- 相机自动对焦AF原理
相机自动对焦AF原理 AF性能是判断相机好坏的重要指标,主要从准确度和速度两个方面来进行考察,本文将介绍自动对焦的几种方式. 一.凸透镜成像原理 二.三种对焦方法 有公式在手,只要给相机安个测距仪就好 ...

