目录
1、介绍
2、什么是PostgreSQL
3、PostgreSQL 的特点
4、数据库定为
5、环境准备
6、编译安装
6.1 安装依赖包
6.2 下载安装包
6.3 创建用户
6.4 创建 postgresql数据目录并授权
6.5 上传压缩包并解压
6.6 编译postgresql源码
6.7 配置环境变量
6.8 初始化数据库
5.9 配置文件修改
6.10 配置服务
6.11 启动服务
7、 数据库创建及使用
7.1 在默认配置条件下,本机访问PostgreSQL
7.2 创建数据库新用户如qztest
7.3 创建用户数据库,如qztestdb
7.4 将qztestdb数据库的所有权限都赋予qztest
7.5 使用命令 \q 退出psql
7.6 以qztestdb的身份连接数据库qztestdb
7.7 创建表、索引、并插入数据
8、 开启远程访问
8.1 编辑配置文件
8.2 重启数据库服务
1、介绍
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另外,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。
2、什么是PostgreSQL
PostgreSQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS)。 用于安全地存储数据; 支持最佳做法,并允许在处理请求时检索它们。
PostgreSQL(也称为Post-gress-Q-L)由PostgreSQL全球开发集团(全球志愿者团队)开发。 它不受任何公司或其他私人实体控制。 它是开源的,其源代码是免费提供的。
PostgreSQL是跨平台的,可以在许多操作系统上运行,如Linux,FreeBSD,OS X,Solaris和Microsoft Windows等。
3、PostgreSQL 的特点
PostgreSQL可在所有主要操作系统(即Linux,UNIX(AIX,BSD,HP-UX,SGI IRIX,Mac OS X,Solaris,Tru64)和Windows等)上运行。
PostgreSQL支持文本,图像,声音和视频,并包括用于C/C++,Java,Perl,Python,Ruby,Tcl和开放数据库连接(ODBC)的编程接口。
PostgreSQL支持SQL的许多功能,例如复杂SQL查询,SQL子选择,外键,触发器,视图,事务,多进程并发控制(MVCC),流式复制(9.0),热备(9.0))。
在PostgreSQL中,表可以设置为从“父”表继承其特征。
可以安装多个扩展以向PostgreSQL添加附加功能。
4、数据库定为
5、环境准备
操作系统 | centos |
CPU | 4核 |
内存 | 16G |
Postgresql版本 | postgresql-11.4 |
6、编译安装
6.1 安装依赖包
yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-devel gcc-c++ openssl-devel cmake
6.2 下载安装包
wget https://ftp.postgresql.org/pub/source/v11.4/postgresql-11.4.tar.gz
6.3 创建用户
#查看用户是否存在
id postgres#添加用户组及用户
groupadd postgres
useradd -g postgres postgres#再次查看可以查看对应的uid gid
id postgres
6.4 创建 postgresql数据目录并授权
选择对应的磁盘空间较大的盘创建数据目录
mkdir -p /pg/postgresql/data
chown -R postgres:postgres /pg
6.5 上传压缩包并解压
rz filename
#解压
tar -zxvf postgresql-11.4.tar.gz
6.6 编译postgresql源码
#进入postgresql解压目录
cd /pg/postgresql-11.4#编译 指定安装目录
./configure --prefix=/pg/postgresql
PostgreSQL配置脚本选项
#安装
make && make install
编译后结果如下
至此,postgresql安装完成
6.7 配置环境变量
# 切换到postgres用户
su - postgres# 编辑postgres用户环境变量
vim .bash_profile# 添加如下内容
export PGHOME=/pg/postgresql
export PGDATA=/pg/postgresql/data
PATH=$PATH:$HOME/bin:$PGHOME/bin # 使环境变量生效
source .bash_profile
6.8 初始化数据库
initdb
此时,postgresql数据目录下已经生成对应的文件。
#进入postgresql目录
cd /pg/postgresql/data
#查看
ll -h
5.9 配置文件修改
修改数据目录下的postgresql.conf 及 pg_hba.conf文件
postgresql.conf 配置PostgreSQL数据库服务器的相应的参数。
pg_hba.conf 配置对数据库的访问权限
初期测试使用时,可以简单修改部分配置,其他值使用默认值
修改 postgresql.conf
vim postgresql.conf
修改 listen_addresses 为 * ,代表所有主机皆可访问
listen_addresses = '*'
修改 pg_hba.conf(允许任意用户从任意机器上以密码方式访问数据库)
vim pg_hba.conf
添加如下记录
host all all 0.0.0.0/0 trust
host all all 127.0.0.1/32 trust
6.10 配置服务
如需配置为服务启动方式,可以按照如下步骤操作
切换至管理员用户root
# 进入postgresql源码目录
cd /pg/postgresql-11.4/contrib/start-scripts# 此目录下有各系统的启动目录,需先将其添加执行权限
chmod +x linux # 将启动服务拷贝至启动服务下
cp linux /etc/init.d/postgresql
因启动服务命令里配置上了默认安装路径目录及数据目录,如与默认路径不一致,需手动调整
vim /etc/init.d/postgresql修改 prefix及PGDATA 路径prefix=/pg/postgresql
PGDATA="/pg/postgresql/data"
6.11 启动服务
a) 通过服务启动postgresql
/etc/init.d/postgresql startb) 通过服务关闭postgresql
/etc/init.d/postgresql stop
c) 通过pg_ctl 启动
# 将postgresql安装路径bin目录下的命令赋权给postgres用户
cd /pg/postgresql/bin
chown -R postgres:postgres .# 切换至postgres用户启动服务su - postgres# 启动服务
pg_ctl -D /pg/postgresql/data/ -l logfile start# 关闭服务
pg_ctl -D /pg/postgresql/data/ -l logfile stop
至此,便可以通过客户端连接数据库进行操作了
数据库创建及使用
7、 数据库创建及使用
7.1 在默认配置条件下,本机访问PostgreSQL
切换到Linux用户postgres,然后执行psql
psql
此时就在数据库postgres中了。使用 psql -d [databasename] 可登录其他数据库。注意:执行psql命令时,必须确认已配置postgresql的环境变量。
7.2 创建数据库新用户如qztest
postgres=# create user qztest with password 'qztestuat2023!';
CREATE ROLE
注意:语句要以分号结尾。密码要用单引号括起来。
7.3 创建用户数据库,如qztestdb
postgres=# CREATE DATABASE qztestdb OWNER qztest;
----------------------------------------------------------------------
另一种方式创建数据库:createdb qztestdb
7.4 将qztestdb数据库的所有权限都赋予qztest
postgres=# GRANT ALL PRIVILEGES ON DATABASE qztestdb TO qztest;
7.5 使用命令 \q 退出psql
postgres=# \q
或者输入quit退出
7.6 以qztestdb的身份连接数据库qztestdb
psql -d qztestdb
7.7 创建表、索引、并插入数据
qztestdb=# create table test1(id int not null primary key,name varchar(20),age int );
CREATE TABLE
qztestdb=# create index idx_test1_name on test1(name);
CREATE INDEX
qztestdb=# insert into test1 values(1,'lisi',28);
INSERT 0 1
qztestdb=# insert into test1 values(2,'测试',20);
INSERT 0 1
qztestdb=# insert into test1 values(3,'前置',22);
INSERT 0 1
qztestdb=# insert into test1 values(4,'chinalife',59);
INSERT 0 1
qztestdb=# insert into test1 values(5,'小新',51);
INSERT 0 1
qztestdb=# insert into test1 values(6,'张三',58);
INSERT 0 1
qztestdb=# insert into test1 values(7,'历史',64);
INSERT 0 1
qztestdb=# insert into test1 values(8,'网二',11);
INSERT 0 1
qztestdb=# insert into test1 values(9,'码子',28);
INSERT 0 1
qztestdb=# insert into test1 values(10,'小红',99);
INSERT 0 1
查询表:
qztestdb=# select * from test1;
8、 开启远程访问
8.1 编辑配置文件
文件:postgresql.conf
位置:vim /pg/postgresql/data/postgresql.conf
添加/修改:在所有IP地址上监听,从而允许远程连接到数据库服务器:
listening_address: '*'
文件:pg_hba.conf
位置:vim /pg/postgresql/data/pg_hba.conf
添加/修改:允许任意用户从任意机器上以密码方式访问数据库,把下行添加为第一条规则:
host all all 0.0.0.0/0 md5
和上面安装时候配置一样.
8.2 重启数据库服务
pg_ctl -D /pg/postgresql/data/ -l logfile restart
8.3 此后即可从其它机器上登录,例如用Navicat for PostgreSQL
主机名或IP: 192.*.*.*
端口: 5432
初始数据库: xxx
用户: xxx
密码: ******
(数据库用户xxf的密码,不是Linux用户xxf的密码)
参考链接一,参考链接二