PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统。它是一种特性非常齐全的自由软件的对象-关系型数据库管理系统,是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。
PostgreSQL支持大部分SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另外,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。
目前国内的许多数据库都是基于PG进行研发的,例如华为开源的openGuass、腾讯的TDSQL等国产数据库都是基于PG开发的。
PG支持的操作系统有WINDOWS、Linux、unix、MAC OS、BSD等。
大家可以通过以下网址对PG数据库进行下载及了解:
中文社区:http://www.postgres.cn
英文社区:PostgreSQL: The world's most advanced open source database
在下面网址中进行wondows版本的下载:
Download PostgreSQLPostgreSQL Database Downloadhttps://www.enterprisedb.com/downloads/postgres-postgresql-downloads
如上图,大家可以根据自己需要的版本进行选择下载。我安装的是14.5版本。
windows版本的安装比较简单,直接“next”即可。但是需要注意的是,其间需要修改一下安装路径
和用户密码。相信大家对于windows的安装流程已经非常熟悉,这里就不再做演示。
在linux系统安装方式有两种,一种是yum安装,一种是源码安装,我选择的是源码安装方式,也比较推荐大家采用源码安装方式进行安装。我是在centos7 系统进行安装的。
下载方式及其地址:
和上面windows的下载地址一样,我选的是linux x86-64版本,相信大家的设备大多数也都是此架构,如有不同,可以选择32位版本。点击其中一个PG版本。
点击页面中的“Source”
这里我选择的是v14.0版本,大家可以自由选择相应的PG版本。
然后选择不同压缩方式的源码压缩包进行下载,也是根据自己的环境和使用习惯进行选择。
我选的如下图方框的版本。点击即可下载。
# 开发包,主要是需要gcc和gcc-c++编译器
yum groupinstall "Development tools"
# 语法分析器
yum install –y bison
# 词法分析器
yum install –y flex
# psql客户端的命令历史
yum install –y readline-devel
# pg_dump/pg_restore的压缩功能支持
yum install –y zlib-devel
#执行上面5条语句,或者直接执行下面一条语句,结果等同,都是安装系统依赖
yum install -y readline-devel gcc gcc-c++ bison flex zlib-devel
# 创建postgres用户
useradd -rmU postgres
# 修改postgres用户密码
passwd postgres
# 切换到postgres用户目录
su - postgres
切换到postgres用户以后,下面的操作全在postgres用户下操作,目的避免出现权限不足的情况。
创建相关目录:
# 创建安装目录
mkdir -p pgdb/pgsoft
# 创建数据库存放目录
mkdir -p pgdb/pgdata
# 创建归档存放目录
mkdir -p pgdb/pgarch
# 创建单独的wal日志存放目录
mkdir -p pgdb/pgwal
# 使用上面的4条创建语句一个一个创建或者用下面的语句一次性创建
mkdir -p pgdb/{pgsoft,pgdata,pgarch,pgwal}
# 如果是root用户创建的目录,则需要将目录权限授权给postgres用户
chown -R postgres:postgres /home/postgres/pgdb
chmod 700 /home/postgres/pgdb
我们刚才已经将pg14的源码压缩包下载好了,利用xftp或者其他工具上传到centos7中。
# 解压源码包
tar -xzvf postgresql-14.0.tar.gz
# 进入解压的源码包
cd postgresql-14.0
# prefix拟指定安装路径/home/postgres/pgdb/pgsoft
./configure --prefix=/home/postgres/pgdb/pgsoft
# 查看相关初始化参数配置
./configure --help
./configure (--prefix=/xxoo 指定数据库软件安装目录)(--with-blocksize=?kb 指定数据文件块大小,默认8k)(--with-segsize=?GB 指定单个文件大小,默认1GB) (--with-wal-segsize=?MB 指定wal日志大小,默认16MB)(--with-perl,--with-python 存储过程支持所需)(--with-openssl ssl连接安全)
# 编译
make world
# 安装
make install
这里的database cluster不是指数据库集群,而是数据库簇,即数据库。PG在磁盘上的一整套文件集合叫做database cluster。
# 此处使用绝对路径,也可用相对路径来操作。
# -D:database cluster的主目录
# -U:指定超级用户
# -W:指定用户密码
# -E:指定数据库字符编码
# --waldir:指定wal日志路径
/home/postgres/pgdb/pgsoft/bin/initdb -D /home/postgres/pgdb/pgdata -U postgres -E utf8 --waldir=/home/postgres/pgdb/pgwal
# 最简化的方式初始化数据库(只指定数据库簇的目录)
/home/postgres/pgdb/pgsoft/bin/initdb -D /home/postgres/pgdb/pgdata
启动数据库的方式有两种:
一种是进入数据库目录,也就是绝对路径启动的方式。
另一种是配置环境变量,直接启动。
下面是两种启动方式的操作:
# 绝对路径启动
/home/postgres/pgdb/pgsoft/bin/pg_ctl -D /home/postgres/pgdb/pgdata -l logfile start
# 配置好环境变量后的启动方式
pg_ctl start
关于配置环境变量:
# 查看配置文件
ls -al ~/
# 编辑 .bash_profile 配置文件,输入:
vi ~/.bash_profile
export PGBASE=/home/postgres/pgdb
export PGHOME=$PGBASE/pgsoft
export PGDATA=$PGBASE/pgdata
export LD_LIBRARY_PATH=$PGHOME/lib
export PGDATABASE=postgres
export PGPORT=5432
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin
export PATH
# 环境变量生效
source ~/.bash_profile
# 连接数据库
psql
# 修改数据库超级用户密码
alter user postgres password '@Dameng520';
# 退出连接
\q
更多数据库技术问题,请登录达梦在线服务平台进行交流:
达梦在线服务平台http://eco.dameng.com