【PostgreSQL】从零开始:(二)PostgreSQL下载与安装
【PostgreSQL】从零开始:(二)PostgreSQL下载与安装
- Winodws环境下载与安装PostgreSQL
- 下载PostgreSQL
- 安装PostgreSQL
- 1.登录数据库
- 2.查看下我们已有的数据库
- Liunx环境下载与安装PostgreSQL
- 使用YUM下载安装PostgreSQL
- 1.下载PostgreSQL安装包
- 2.安装PostgreSQL
- 3.初始化数据
- 4.设置为开机启动
- 5.启动数据库
- 6.查看进程
- 7.登录数据库
- 下载源码包编译安装
- 通过官网下载
- 使用wget
- 1.安装规划
- 2.创建用户组及用户并修改密码
- 3.修改root用户配置参数,并让其生效
- 4.创建相关目录并授权
- 5.安装相关依赖
- 6.下载PostgreSQL源码文件
- 2.校验文件
- 3.解压源码文件
- 7.进入数据库源文件目录,给configure加运行权限
- 8.执行以下语句开始编译PostgreSQL
- 9.查看数据库文件
- 10.配置postgres用户环境变量
- 11.创建数据库实例
- 12.启动数据库
- 13.登陆数据库
- 14.设置开机自起
Winodws环境下载与安装PostgreSQL
下载PostgreSQL
也可以直接丁路到EDB网站直接下载 【下载地址】
安装PostgreSQL
安装完成后,如果勾选:Stack Builder may be used to download and install additional tools,drivers and applications to complement your PostgreSQL installation. 在Finish之后会运行Stack Builder,可用于下载和安装附加的工具、驱动程序和应用程序,以补充PostgreSQL安装。可以不勾选,勾选了会运行 Stack Builder安装插件。(本次安装不附带Stack Builder安装,附录1可以了解Stack Builder安装插件相关内容)
1.登录数据库
2.查看下我们已有的数据库
Liunx环境下载与安装PostgreSQL
使用YUM下载安装PostgreSQL
下面我们来演示一下
1.下载PostgreSQL安装包
https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
执行结果:
[root@postgre-sql ~]# yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
已加载插件:fastestmirror
pgdg-redhat-repo-latest.noarch.rpm | 8.6 kB 00:00:00
正在检查 /var/tmp/yum-root-rFo7Yw/pgdg-redhat-repo-latest.noarch.rpm: pgdg-redhat-repo-42.0-32.noarch
/var/tmp/yum-root-rFo7Yw/pgdg-redhat-repo-latest.noarch.rpm 将被安装
正在解决依赖关系
--> 正在检查事务
---> 软件包 pgdg-redhat-repo.noarch.0.42.0-32 将被 安装
--> 解决依赖关系完成依赖关系解决============================================================================================================================================================================================================================================================================================================================================Package 架构 版本 源 大小
============================================================================================================================================================================================================================================================================================================================================
正在安装:pgdg-redhat-repo noarch 42.0-32 /pgdg-redhat-repo-latest.noarch 13 k事务概要
============================================================================================================================================================================================================================================================================================================================================
安装 1 软件包总计:13 k
安装大小:13 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction正在安装 : pgdg-redhat-repo-42.0-32.noarch 1/1 验证中 : pgdg-redhat-repo-42.0-32.noarch 1/1 已安装:pgdg-redhat-repo.noarch 0:42.0-32 完毕!
[root@postgre-sql ~]#
2.安装PostgreSQL
折腾了半天,发现centos7的yum只有PostgreSQL15版本:见附录2,那我们就以15作为演示
yum install -y postgresql15-server
执行结果:
[root@postgre-sql ~]# yum install -y postgresql15-server
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 postgresql15-server.x86_64.0.15.5-1PGDG.rhel7 将被 安装
--> 正在处理依赖关系 postgresql15-libs(x86-64) = 15.5-1PGDG.rhel7,它被软件包 postgresql15-server-15.5-1PGDG.rhel7.x86_64 需要
--> 正在处理依赖关系 postgresql15(x86-64) = 15.5-1PGDG.rhel7,它被软件包 postgresql15-server-15.5-1PGDG.rhel7.x86_64 需要
--> 正在处理依赖关系 libzstd.so.1()(64bit),它被软件包 postgresql15-server-15.5-1PGDG.rhel7.x86_64 需要
--> 正在处理依赖关系 libpq.so.5()(64bit),它被软件包 postgresql15-server-15.5-1PGDG.rhel7.x86_64 需要
--> 正在处理依赖关系 libicuuc.so.50()(64bit),它被软件包 postgresql15-server-15.5-1PGDG.rhel7.x86_64 需要
--> 正在处理依赖关系 libicui18n.so.50()(64bit),它被软件包 postgresql15-server-15.5-1PGDG.rhel7.x86_64 需要
--> 正在检查事务
---> 软件包 libicu.x86_64.0.50.2-4.el7_7 将被 安装
---> 软件包 postgresql15.x86_64.0.15.5-1PGDG.rhel7 将被 安装
--> 正在处理依赖关系 libzstd >= 1.4.0,它被软件包 postgresql15-15.5-1PGDG.rhel7.x86_64 需要
--> 正在处理依赖关系 libzstd.so.1()(64bit),它被软件包 postgresql15-15.5-1PGDG.rhel7.x86_64 需要
---> 软件包 postgresql15-libs.x86_64.0.15.5-1PGDG.rhel7 将被 安装
---> 软件包 postgresql15-server.x86_64.0.15.5-1PGDG.rhel7 将被 安装
--> 正在处理依赖关系 libzstd.so.1()(64bit),它被软件包 postgresql15-server-15.5-1PGDG.rhel7.x86_64 需要
--> 解决依赖关系完成
错误:软件包:postgresql15-server-15.5-1PGDG.rhel7.x86_64 (pgdg15)需要:libzstd.so.1()(64bit)
错误:软件包:postgresql15-15.5-1PGDG.rhel7.x86_64 (pgdg15)需要:libzstd.so.1()(64bit)
错误:软件包:postgresql15-15.5-1PGDG.rhel7.x86_64 (pgdg15)需要:libzstd >= 1.4.0您可以尝试添加 --skip-broken 选项来解决该问题您可以尝试执行:rpm -Va --nofiles --nodigest
[root@postgre-sql ~]#
提示我们缺少包libzstd.so.1,libzstd >= 1.4.0
执行:
yum install epel-release.noarch -y
yum install libzstd.x86_64 -y
执行结果:
[root@postgre-sql ~]# yum install epel-release.noarch -y
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 epel-release.noarch.0.7-11 将被 安装
--> 解决依赖关系完成依赖关系解决============================================================================================================================================================================================================================================================================================================================================Package 架构 版本 源 大小
============================================================================================================================================================================================================================================================================================================================================
正在安装:epel-release noarch 7-11 extras 15 k事务概要
============================================================================================================================================================================================================================================================================================================================================
安装 1 软件包总下载量:15 k
安装大小:24 k
Downloading packages:
epel-release-7-11.noarch.rpm | 15 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction正在安装 : epel-release-7-11.noarch 1/1 验证中 : epel-release-7-11.noarch 1/1 已安装:epel-release.noarch 0:7-11 完毕!
[root@postgre-sql ~]# yum install libzstd.x86_64 -y
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
epel/x86_64/metalink | 7.0 kB 00:00:00 * epel: mirror.nyist.edu.cn
epel | 4.7 kB 00:00:00
(1/3): epel/x86_64/group_gz | 99 kB 00:00:00
(2/3): epel/x86_64/updateinfo | 1.0 MB 00:00:00
(3/3): epel/x86_64/primary_db | 7.0 MB 00:00:00
正在解决依赖关系
--> 正在检查事务
---> 软件包 libzstd.x86_64.0.1.5.5-1.el7 将被 安装
--> 解决依赖关系完成依赖关系解决============================================================================================================================================================================================================================================================================================================================================Package 架构 版本 源 大小
============================================================================================================================================================================================================================================================================================================================================
正在安装:libzstd x86_64 1.5.5-1.el7 epel 292 k事务概要
============================================================================================================================================================================================================================================================================================================================================
安装 1 软件包总下载量:292 k
安装大小:775 k
Downloading packages:
警告:/var/cache/yum/x86_64/7/epel/packages/libzstd-1.5.5-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 352c64e5: NOKEY 0% [ ] 0.0 B/s | 0 B --:--:-- ETA
libzstd-1.5.5-1.el7.x86_64.rpm 的公钥尚未安装
libzstd-1.5.5-1.el7.x86_64.rpm | 292 kB 00:00:00
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 检索密钥
导入 GPG key 0x352C64E5:用户ID : "Fedora EPEL (7) <epel@fedoraproject.org>"指纹 : 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5软件包 : epel-release-7-11.noarch (@extras)来自 : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction正在安装 : libzstd-1.5.5-1.el7.x86_64 1/1 验证中 : libzstd-1.5.5-1.el7.x86_64 1/1 已安装:libzstd.x86_64 0:1.5.5-1.el7 完毕!
[root@postgre-sql ~]#
再次执行
yum install -y postgresql15-server
执行结果:
[root@postgre-sql ~]# yum install -y postgresql15-server
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile* epel: mirror.nyist.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 postgresql15-server.x86_64.0.15.5-1PGDG.rhel7 将被 安装
--> 正在处理依赖关系 postgresql15-libs(x86-64) = 15.5-1PGDG.rhel7,它被软件包 postgresql15-server-15.5-1PGDG.rhel7.x86_64 需要
--> 正在处理依赖关系 postgresql15(x86-64) = 15.5-1PGDG.rhel7,它被软件包 postgresql15-server-15.5-1PGDG.rhel7.x86_64 需要
--> 正在处理依赖关系 libpq.so.5()(64bit),它被软件包 postgresql15-server-15.5-1PGDG.rhel7.x86_64 需要
--> 正在处理依赖关系 libicuuc.so.50()(64bit),它被软件包 postgresql15-server-15.5-1PGDG.rhel7.x86_64 需要
--> 正在处理依赖关系 libicui18n.so.50()(64bit),它被软件包 postgresql15-server-15.5-1PGDG.rhel7.x86_64 需要
--> 正在检查事务
---> 软件包 libicu.x86_64.0.50.2-4.el7_7 将被 安装
---> 软件包 postgresql15.x86_64.0.15.5-1PGDG.rhel7 将被 安装
---> 软件包 postgresql15-libs.x86_64.0.15.5-1PGDG.rhel7 将被 安装
--> 解决依赖关系完成依赖关系解决============================================================================================================================================================================================================================================================================================================================================Package 架构 版本 源 大小
============================================================================================================================================================================================================================================================================================================================================
正在安装:postgresql15-server x86_64 15.5-1PGDG.rhel7 pgdg15 5.8 M
为依赖而安装:libicu x86_64 50.2-4.el7_7 base 6.9 Mpostgresql15 x86_64 15.5-1PGDG.rhel7 pgdg15 1.6 Mpostgresql15-libs x86_64 15.5-1PGDG.rhel7 pgdg15 284 k事务概要
============================================================================================================================================================================================================================================================================================================================================
安装 1 软件包 (+3 依赖软件包)总下载量:15 M
安装大小:58 M
Downloading packages:
(1/4): libicu-50.2-4.el7_7.x86_64.rpm | 6.9 MB 00:00:01
warning: /var/cache/yum/x86_64/7/pgdg15/packages/postgresql15-15.5-1PGDG.rhel7.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY 52% [========================================================================= ] 3.3 MB/s | 7.6 MB 00:00:02 ETA
postgresql15-15.5-1PGDG.rhel7.x86_64.rpm 的公钥尚未安装
(2/4): postgresql15-15.5-1PGDG.rhel7.x86_64.rpm | 1.6 MB 00:00:03
(3/4): postgresql15-server-15.5-1PGDG.rhel7.x86_64.rpm | 5.8 MB 00:00:00
(4/4): postgresql15-libs-15.5-1PGDG.rhel7.x86_64.rpm | 284 kB 00:00:07
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计 1.9 MB/s | 15 MB 00:00:07
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG 检索密钥
导入 GPG key 0x442DF0F8:用户ID : "PostgreSQL RPM Building Project <pgsql-pkg-yum@postgresql.org>"指纹 : 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8软件包 : pgdg-redhat-repo-42.0-32.noarch (@/pgdg-redhat-repo-latest.noarch)来自 : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction正在安装 : libicu-50.2-4.el7_7.x86_64 1/4 正在安装 : postgresql15-libs-15.5-1PGDG.rhel7.x86_64 2/4 正在安装 : postgresql15-15.5-1PGDG.rhel7.x86_64 3/4 正在安装 : postgresql15-server-15.5-1PGDG.rhel7.x86_64 4/4 验证中 : postgresql15-15.5-1PGDG.rhel7.x86_64 1/4 验证中 : postgresql15-server-15.5-1PGDG.rhel7.x86_64 2/4 验证中 : postgresql15-libs-15.5-1PGDG.rhel7.x86_64 3/4 验证中 : libicu-50.2-4.el7_7.x86_64 4/4 已安装:postgresql15-server.x86_64 0:15.5-1PGDG.rhel7 作为依赖被安装:libicu.x86_64 0:50.2-4.el7_7 postgresql15.x86_64 0:15.5-1PGDG.rhel7 postgresql15-libs.x86_64 0:15.5-1PGDG.rhel7 完毕!
[root@postgre-sql ~]#
3.初始化数据
[root@postgre-sql ~]# /usr/pgsql-15/bin/postgresql-15-setup initdb
Initializing database ... OK
[root@postgre-sql ~]#
4.设置为开机启动
[root@postgre-sql ~]# systemctl enable postgresql-15
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-15.service to /usr/lib/systemd/system/postgresql-15.service.
[root@postgre-sql ~]#
5.启动数据库
[root@postgre-sql ~]# systemctl start postgresql-15
[root@postgre-sql ~]
6.查看进程
[root@postgre-sql ~]# ps -ef | grep postgres
postgres 3374 1 0 12:38 ? 00:00:00 /usr/pgsql-15/bin/postmaster -D /var/lib/pgsql/15/data/
postgres 3376 3374 0 12:38 ? 00:00:00 postgres: logger
postgres 3377 3374 0 12:38 ? 00:00:00 postgres: checkpointer
postgres 3378 3374 0 12:38 ? 00:00:00 postgres: background writer
postgres 3380 3374 0 12:38 ? 00:00:00 postgres: walwriter
postgres 3381 3374 0 12:38 ? 00:00:00 postgres: autovacuum launcher
postgres 3382 3374 0 12:38 ? 00:00:00 postgres: logical replication launcher
root 3411 3049 0 12:41 pts/1 00:00:00 grep --color=auto postgres
[root@postgre-sql ~]#
7.登录数据库
[root@postgre-sql ~]# su - postgres
bash-4.2$ psql
psql (15.5)
输入 "help" 来获取帮助信息.
postgres=#
注意:默认用户是postgres,密码是没有的 需要进入数据后修改密码
postgres=# \du角色列表角色名称 | 属性 | 成员属于
----------+--------------------------------------------+----------postgres | 超级用户, 建立角色, 建立 DB, 复制, 绕过RLS | {}postgres=# alter user postgres with password '12345678ab';
ALTER ROLE
postgres=#
验证密码是否正确
bash-4.2$ psql -h127.0.0.1 -U postgres postgres
用户 postgres 的口令:
psql (15.5)
输入 "help" 来获取帮助信息.
postgres=#
下载源码包编译安装
可以通过官网下载也可以使用wget下载
通过官网下载
使用wget
1.安装规划
数据库用户 POSTGRESQL_USER=postgres
数据库用户组 POSTGRESQL_GROUP=postgres
数据库安装文件路径 POSTGRESQL_INSTALL_PATH=/root/postgresql_install
数据库版本号 POSTGRESQL_VERSION=16.1
数据库安装路径 POSTGRESQL_PATH=/opt/postgresql- P O S T G R E S Q L V E R S I O N 数据库端口号 P O S T G R E S Q L P O R T = 5432 数据库 D A T A 存放路径 P O S T G R E S Q L D A T A = / d a t a / {POSTGRESQL_VERSION} 数据库端口号 POSTGRESQL_PORT=5432 数据库DATA存放路径 POSTGRESQL_DATA=/data/ POSTGRESQLVERSION数据库端口号POSTGRESQLPORT=5432数据库DATA存放路径POSTGRESQLDATA=/data/{POSTGRESQL_VERSION}/data
2.创建用户组及用户并修改密码
[root@postgre-sql ~]# groupadd postgres
[root@postgre-sql ~]# useradd -g postgres postgres
[root@postgre-sql ~]# passwd postgres
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@postgre-sql ~]#
3.修改root用户配置参数,并让其生效
[root@postgre-sql ~]# vi .bash_profile
[root@postgre-sql ~]# cat .bash_profile
# .bash_profile# Get the aliases and functions
if [ -f ~/.bashrc ]; then. ~/.bashrc
fi# User specific environment and startup programsPATH=$PATH:$HOME/bin# 新增的Postgre自定义配置
export POSTGRESQL_USER=postgres
export POSTGRESQL_GROUP=postgres
export POSTGRESQL_INSTALL_PATH=/root/postgresql_install
export POSTGRESQL_VERSION=16.1
export POSTGRESQL_PATH=/opt/postgresql-${POSTGRESQL_VERSION}
export POSTGRESQL_PORT=5432
export POSTGRESQL_DATA=/data/${POSTGRESQL_VERSION}/data
N}/dataexport PATH
[root@postgre-sql ~]# source .bash_profile
[root@postgre-sql ~]# echo ${POSTGRESQL_VERSION}
16.1
[root@postgre-sql ~]#
4.创建相关目录并授权
[root@postgre-sql ~]# mkdir -p ${POSTGRESQL_INSTALL_PATH}
[root@postgre-sql ~]# mkdir -p ${POSTGRESQL_PATH}
[root@postgre-sql ~]# mkdir -p ${POSTGRESQL_DATA}
[root@postgre-sql ~]# chown -R postgres:postgres /data
[root@postgre-sql ~]# chown -R postgres:postgres /root/postgresql_install
[root@postgre-sql ~]# chown -R postgres:postgres /opt/postgresql-16.1/
5.安装相关依赖
yum -y install bzip2 gcc gcc-c++ epel-release llvm5.0 llvm5.0-devel clang libicu-devel perl-ExtUtils-Embed zlib-devel openssl openssl-devel pam-devel libxml2-devel libxslt-devel openldap-devel systemd-devel tcl-devel python-devel
6.下载PostgreSQL源码文件
[root@postgre-sql ~]# cd postgresql_install/
[root@postgre-sql postgresql_install]# wget https://ftp.postgresql.org/pub/source/v16.1/postgresql-16.1.tar.bz2 --no-check-certificate
--2023-12-13 15:11:38-- https://ftp.postgresql.org/pub/source/v16.1/postgresql-16.1.tar.bz2
正在解析主机 ftp.postgresql.org (ftp.postgresql.org)... 147.75.85.69, 217.196.149.55, 72.32.157.246, ...
正在连接 ftp.postgresql.org (ftp.postgresql.org)|147.75.85.69|:443... 失败:拒绝连接。
正在连接 ftp.postgresql.org (ftp.postgresql.org)|217.196.149.55|:443... 已连接。
警告: 无法验证 ftp.postgresql.org 的由 “/C=US/O=Let's Encrypt/CN=R3” 颁发的证书:颁发的证书已经过期。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:24605482 (23M) [application/octet-stream]
正在保存至: “postgresql-16.1.tar.bz2”100%[==================================================================================================================================================================================================================================================================================================>] 24,605,482 5.53MB/s 用时 4.2s 2023-12-13 15:12:05 (5.53 MB/s) - 已保存 “postgresql-16.1.tar.bz2” [24605482/24605482])[root@postgre-sql postgresql_install]# wget https://ftp.postgresql.org/pub/source/v16.1/postgresql-16.1.tar.bz2.md5 --no-check-certificate
--2023-12-13 15:12:18-- https://ftp.postgresql.org/pub/source/v16.1/postgresql-16.1.tar.bz2.md5
正在解析主机 ftp.postgresql.org (ftp.postgresql.org)... 217.196.149.55, 72.32.157.246, 87.238.57.227, ...
正在连接 ftp.postgresql.org (ftp.postgresql.org)|217.196.149.55|:443... 已连接。
警告: 无法验证 ftp.postgresql.org 的由 “/C=US/O=Let's Encrypt/CN=R3” 颁发的证书:颁发的证书已经过期。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:58 [text/plain]
正在保存至: “postgresql-16.1.tar.bz2.md5”100%[==================================================================================================================================================================================================================================================================================================>] 58 --.-K/s 用时 0s 2023-12-13 15:12:20 (7.99 MB/s) - 已保存 “postgresql-16.1.tar.bz2.md5” [58/58])[root@postgre-sql postgresql_install]# ls -l
总用量 24036
-rw-r--r--. 1 root root 24605482 11月 7 06:19 postgresql-16.1.tar.bz2
-rw-r--r--. 1 root root 58 11月 7 06:19 postgresql-16.1.tar.bz2.md5
[root@postgre-sql postgresql_install]#
2.校验文件
[root@postgre-sql postgresql_install]# md5sum postgresql-16.1.tar.bz2
9cbfb9076ed06384471802b850698a6d postgresql-16.1.tar.bz2
[root@postgre-sql postgresql_install]# cat postgresql-16.1.tar.bz2.md5
9cbfb9076ed06384471802b850698a6d postgresql-16.1.tar.bz2
[root@postgre-sql postgresql_install]#
两个MD5值一致就代表包是完整的
3.解压源码文件
[root@postgre-sql postgresql_install]# tar -xjvf postgresql-16.1.tar.bz2
[root@postgre-sql postgresql_install]# ls -l
总用量 24040
drwxrwxrwx. 6 1107 1107 4096 11月 7 06:18 postgresql-16.1
-rw-r--r--. 1 root root 24605482 11月 7 06:19 postgresql-16.1.tar.bz2
-rw-r--r--. 1 root root 58 11月 7 06:19 postgresql-16.1.tar.bz2.md5
[root@postgre-sql postgresql_install]#
7.进入数据库源文件目录,给configure加运行权限
[root@postgre-sql postgre_install]# cd postgresql-16.1/
[root@postgre-sql postgresql-16.1]# chmod +x configure
8.执行以下语句开始编译PostgreSQL
./configure --prefix=${POSTGRESQL_PATH} --with-pgport=${POSTGRESQL_PORT}
make
make install
然后再执行
9.查看数据库文件
[root@postgre-sql postgresql-16.1]# cd /opt/postgresql-16.1/
[root@postgre-sql postgresql-16.1]# ls -l
总用量 16
drwxr-xr-x. 2 root root 4096 12月 13 14:15 bin
drwxr-xr-x. 6 root root 4096 12月 13 14:15 include
drwxr-xr-x. 4 root root 4096 12月 13 14:15 lib
drwxr-xr-x. 6 root root 4096 12月 13 14:15 share
[root@postgre-sql postgresql-16.1]#
这里我们已经编译成功了
10.配置postgres用户环境变量
[postgres@postgre-sql ~]$ vi .bash_profile
[postgres@postgre-sql ~]$ cat .bash_profile
# .bash_profile# Get the aliases and functions
if [ -f ~/.bashrc ]; then. ~/.bashrc
fi# User specific environment and startup programsPATH=$PATH:$HOME/.local/bin:$HOME/bin
## 新添加配置
export POSTGRESQL_USER=postgres
export POSTGRESQL_GROUP=postgres
export POSTGRESQL_INSTALL_PATH=/root/postgresql_install
export POSTGRESQL_VERSION=16.1
export POSTGRESQL_PATH=/opt/postgresql-${POSTGRESQL_VERSION}
export POSTGRESQL_PORT=5432
export POSTGRESQL_DATA=/data/${POSTGRESQL_VERSION}/data
export LD_LIBRARY_PATH=${POSTGRESQL_PATH}/lib:/usr/local/lib:$LD_LIBRARY_PATH
export PATH=${POSTGRESQL_PATH}/bin:$PATH
export PGDATA=${POSTGRESQL_DATA}export PATH
[postgres@postgre-sql ~]$ source .bash_profile
[postgres@postgre-sql ~]$ echo $PGDATA
/data/16.1/data
[postgres@postgre-sql ~]$
11.创建数据库实例
[postgres@postgre-sql ~]$ initdb -A md5 -D $PGDATA -E 'UTF8' --pwfile=<(printf "%s" "12345678ab")
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.The database cluster will be initialized with locale "zh_CN.UTF-8".
initdb: could not find suitable text search configuration for locale "zh_CN.UTF-8"
The default text search configuration will be set to "simple".Data page checksums are disabled.creating directory /data/16.1/data ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... Asia/Shanghai
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... okSuccess. You can now start the database server using:pg_ctl -D /data/16.1/data -l logfile start[postgres@postgre-sql ~]$
12.启动数据库
[postgres@postgre-sql ~]$ pg_ctl -D /data/16.1/data start
waiting for server to start....2023-12-13 15:51:24.695 CST [28517] LOG: starting PostgreSQL 16.1 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit
2023-12-13 15:51:24.698 CST [28517] LOG: listening on IPv6 address "::1", port 5432
2023-12-13 15:51:24.698 CST [28517] LOG: listening on IPv4 address "127.0.0.1", port 5432
2023-12-13 15:51:24.701 CST [28517] LOG: listening on Unix socket "/tmp/.s.PGSQL.5432"
2023-12-13 15:51:24.707 CST [28520] LOG: database system was shut down at 2023-12-13 15:51:14 CST
2023-12-13 15:51:24.710 CST [28517] LOG: database system is ready to accept connectionsdone
server started
[postgres@postgre-sql ~]$
13.登陆数据库
[postgres@postgre-sql ~]$ psql -U postgres -d postgres
Password for user postgres:
psql (16.1)
Type "help" for help.postgres=# \lList of databasesName | Owner | Encoding | Locale Provider | Collate | Ctype | ICU Locale | ICU Rules | Access privileges
-----------+----------+----------+-----------------+-------------+-------------+------------+-----------+-----------------------postgres | postgres | UTF8 | libc | zh_CN.UTF-8 | zh_CN.UTF-8 | | | template0 | postgres | UTF8 | libc | zh_CN.UTF-8 | zh_CN.UTF-8 | | | =c/postgres +| | | | | | | | postgres=CTc/postgrestemplate1 | postgres | UTF8 | libc | zh_CN.UTF-8 | zh_CN.UTF-8 | | | =c/postgres +| | | | | | | | postgres=CTc/postgres
(3 rows)postgres=#
登陆数据库并查看到了数据库列表,到这里部署已经完成了
14.设置开机自起
[root@postgre-sql ~]# cat >/usr/lib/systemd/system/postgresql.service <<-EOF
[Unit]
Description=PostgreSQL v${POSTGRESQL_VERSION} database server
Documentation=https://www.postgresql.org
Requires=network.target local-fs.target
After=network.target local-fs.target[Service]
Type=forkingUser=postgres
Group=postgresEnvironment=PGDATA=/data/${POSTGRESQL_VERSION}/dataOOMScoreAdjust=-1000ExecStart=${POSTGRESQL_PATH}/bin/pg_ctl start -D \${PGDATA}
ExecStop=${POSTGRESQL_PATH}/bin/pg_ctl stop -D \${PGDATA}
ExecReload=${POSTGRESQL_PATH}/bin/pg_ctl reload -D \${PGDATA}
ExecRestart=${POSTGRESQL_PATH}/bin/pg_ctl restart -D \${PGDATA}
TimeoutSec=0[Install]
WantedBy=multi-user.target
EOF
[root@postgre-sql ~]# systemctl daemon-reload
[root@postgre-sql ~]# systemctl enable --now postgresql.service
Postgis 是数据库地理信息位图的插件,用户开启GIS拓展
pem-httpd 是http服务工具
[root@postgre-sql ~]# yum search postgresql1
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
========================================================================================================================================================= N/S matched: postgresql1 =========================================================================================================================================================
postgresql12-odbc-debuginfo.x86_64 : Debug information for package postgresql12-odbc
postgresql11.x86_64 : PostgreSQL client programs and libraries
postgresql11-contrib.x86_64 : Contributed source and binaries distributed with PostgreSQL
postgresql11-devel.x86_64 : PostgreSQL development header files and libraries
postgresql11-docs.x86_64 : Extra documentation for PostgreSQL
postgresql11-libs.x86_64 : The shared libraries required for any PostgreSQL clients
postgresql11-llvmjit.x86_64 : Just-in-time compilation support for PostgreSQL
postgresql11-odbc.x86_64 : PostgreSQL ODBC driver
postgresql11-plperl.x86_64 : The Perl procedural language for PostgreSQL
postgresql11-plpython.x86_64 : The Python procedural language for PostgreSQL
postgresql11-plpython3.x86_64 : The Python3 procedural language for PostgreSQL
postgresql11-pltcl.x86_64 : The Tcl procedural language for PostgreSQL
postgresql11-server.x86_64 : The programs needed to create and run a PostgreSQL server
postgresql11-tcl.x86_64 : A Tcl client library for PostgreSQL
postgresql11-test.x86_64 : The test suite distributed with PostgreSQL
postgresql12.x86_64 : PostgreSQL client programs and libraries
postgresql12-contrib.x86_64 : Contributed source and binaries distributed with PostgreSQL
postgresql12-devel.x86_64 : PostgreSQL development header files and libraries
postgresql12-docs.x86_64 : Extra documentation for PostgreSQL
postgresql12-libs.x86_64 : The shared libraries required for any PostgreSQL clients
postgresql12-llvmjit.x86_64 : Just-in-time compilation support for PostgreSQL
postgresql12-odbc.x86_64 : PostgreSQL ODBC driver
postgresql12-plperl.x86_64 : The Perl procedural language for PostgreSQL
postgresql12-plpython.x86_64 : The Python procedural language for PostgreSQL
postgresql12-plpython3.x86_64 : The Python3 procedural language for PostgreSQL
postgresql12-pltcl.x86_64 : The Tcl procedural language for PostgreSQL
postgresql12-server.x86_64 : The programs needed to create and run a PostgreSQL server
postgresql12-tcl.x86_64 : A Tcl client library for PostgreSQL
postgresql12-test.x86_64 : The test suite distributed with PostgreSQL
postgresql13.x86_64 : PostgreSQL client programs and libraries
postgresql13-contrib.x86_64 : Contributed source and binaries distributed with PostgreSQL
postgresql13-devel.x86_64 : PostgreSQL development header files and libraries
postgresql13-docs.x86_64 : Extra documentation for PostgreSQL
postgresql13-libs.x86_64 : The shared libraries required for any PostgreSQL clients
postgresql13-llvmjit.x86_64 : Just-in-time compilation support for PostgreSQL
postgresql13-odbc.x86_64 : PostgreSQL ODBC driver
postgresql13-plperl.x86_64 : The Perl procedural language for PostgreSQL
postgresql13-plpython3.x86_64 : The Python3 procedural language for PostgreSQL
postgresql13-pltcl.x86_64 : The Tcl procedural language for PostgreSQL
postgresql13-server.x86_64 : The programs needed to create and run a PostgreSQL server
postgresql13-test.x86_64 : The test suite distributed with PostgreSQL
postgresql14.x86_64 : PostgreSQL client programs and libraries
postgresql14-contrib.x86_64 : Contributed source and binaries distributed with PostgreSQL
postgresql14-devel.x86_64 : PostgreSQL development header files and libraries
postgresql14-docs.x86_64 : Extra documentation for PostgreSQL
postgresql14-libs.x86_64 : The shared libraries required for any PostgreSQL clients
postgresql14-llvmjit.x86_64 : Just-in-time compilation support for PostgreSQL
postgresql14-odbc.x86_64 : PostgreSQL ODBC driver
postgresql14-plperl.x86_64 : The Perl procedural language for PostgreSQL
postgresql14-plpython3.x86_64 : The Python3 procedural language for PostgreSQL
postgresql14-pltcl.x86_64 : The Tcl procedural language for PostgreSQL
postgresql14-server.x86_64 : The programs needed to create and run a PostgreSQL server
postgresql14-tcl.x86_64 : A Tcl client library for PostgreSQL
postgresql14-test.x86_64 : The test suite distributed with PostgreSQL
postgresql15.x86_64 : PostgreSQL client programs and libraries
postgresql15-contrib.x86_64 : Contributed source and binaries distributed with PostgreSQL
postgresql15-devel.x86_64 : PostgreSQL development header files and libraries
postgresql15-docs.x86_64 : Extra documentation for PostgreSQL
postgresql15-libs.x86_64 : The shared libraries required for any PostgreSQL clients
postgresql15-llvmjit.x86_64 : Just-in-time compilation support for PostgreSQL
postgresql15-odbc.x86_64 : PostgreSQL ODBC driver
postgresql15-plperl.x86_64 : The Perl procedural language for PostgreSQL
postgresql15-plpython3.x86_64 : The Python3 procedural language for PostgreSQL
postgresql15-pltcl.x86_64 : The Tcl procedural language for PostgreSQL
postgresql15-server.x86_64 : The programs needed to create and run a PostgreSQL server
postgresql15-tcl.x86_64 : A Tcl client library for PostgreSQL
postgresql15-test.x86_64 : The test suite distributed with PostgreSQL名称和简介匹配 only,使用“search all”试试。
[root@postgre-sql ~]#
Stack Builder
Add-ons,tools and utilities的展开项是插件:
EDB language PACK 是pgAdmin工具的中文包
pgAgent 是pg数据库计划任务插件:用来实现PostgreSQL 的自动任务执行
pgBouncer是 PostgreSQL的轻量的连接池
Database Drivers的展开项是数据库驱动
Database Server的展开项是数据库服务
migrationtoolkit 是数据库的迁移工具
PEM SQL profiler pulgin 是数据库的性能监控工具
Postgres Enterprise Manager 是postgresql管理和监控工具
replication server 是postgresql复制服务,用于搭建集群
sql/protect 是数据库的防火墙工具 ↩︎PostgreSQL yum支持列表
更多信息查看 https://yum.postgresql.org/packages/#pg11 ↩︎
相关文章:

【PostgreSQL】从零开始:(二)PostgreSQL下载与安装
【PostgreSQL】从零开始:(二)PostgreSQL下载与安装 Winodws环境下载与安装PostgreSQL下载PostgreSQL安装PostgreSQL1.登录数据库2.查看下我们已有的数据库 Liunx环境下载与安装PostgreSQL使用YUM下载安装PostgreSQL1.下载PostgreSQL安装包2.安装PostgreS…...
PHP的垃圾回收机制是怎样的?
PHP 使用自动垃圾回收机制来管理内存。PHP 的垃圾回收主要依赖于引用计数和周期性垃圾回收两种策略。 引用计数: PHP 使用引用计数来跟踪变量的引用次数。每当一个变量被引用,其引用计数就增加;每当一个引用被释放,计数就减少。当…...

【数据结构】八大排序之希尔排序算法
🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 一.优化直接插入排序算法 我们在之前对直接插入排序算法的优化部分通过对直接插入排序的分析可以得到一个结论,即: 进行直接插入排序的数组,如果越接近局部有序,则后续进行直…...
NestJS使用gRPC实现微服务通信
代码仓库地址:https://github.com/zeng-jc/rpc-grpc-practice 1.1 基本概念 gRPC 基于 Protocol Buffers(protobuf)作为接口定义语言(IDL),意味着你可以使用 protobuf 来定义你的服务接口,gRP…...
Android手机使用Termux终端模拟器
Termux 是 Android 平台上的一个终端模拟器,可以在 Android 手机上模拟 Linux 环境。它提供命令行界面,并且提供了功能健全的包管理工具(pkg)。另外就是 Termux 不需要 root 权限,安装后默认产生一个用户,可…...

【Linux】cp问题,生产者消费者问题代码实现
文章目录 前言一、 BlockQueue.hpp(阻塞队列)二、main.cpp 前言 生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用…...

C++1114新标准——统一初始化(Uniform Initialization)、Initializer_list(初始化列表)、explicit
系列文章目录 C11&14新标准——Variadic templates(数量不定的模板参数) C11&14新标准——Uniform Initialization(统一初始化)、Initializer_list(初始化列表)、explicit 文章目录 系列文章目录1…...

Kubeadm 方式部署K8s集群
环境 主节点CPU核数必须是 ≥2核且内存要求必须≥2G,否则k8s无法启动 主机名地址角色配置kube-master192.168.134.165主节点2核4Gkube-node1192..168.134.166 工作节点2核4Gkube-node2192.168.134.163工作节点2核4G 1.获取镜像 谷歌镜像[由于国内网络原因…...
力扣376周赛
力扣第376场周赛 找出缺失和重复的数字 map模拟 class Solution { public:vector<int> findMissingAndRepeatedValues(vector<vector<int>>& grid) {int n grid.size() , m grid[0].size();map<int,int>mi;for(int i 0 ; i < n ; i ){for…...

SU渲染受到电脑性能影响大吗?如何提高渲染速度
一般3d设计师们在进行设计工作前都需要提供一台高配电脑,那么你这知道su渲染对电脑要求高吗?电脑带不动su怎么解决?su对电脑什么配件要求高?今天这篇文章就详细为大家带来电脑硬件对su建模渲染的影响,以及su渲染慢怎么…...

Docker - Android源码编译与烧写
创建源代码 并挂载到win目录 docker run -v /mnt/f/android8.0:/data/android8.0 -it --name android8.0 49a981f2b85f /bin/bash 使用 docker update 命令动态调整内存限制: 重新运行一个容器 docker run -m 512m my_container 修改运行中容器 显示运行中容器 d…...

股票价格预测 | Python实现基于ARIMA和LSTM的股票预测模型(含XGBoost特征重要性衡量)
文章目录 效果一览文章概述模型描述源码设计效果一览 文章概述 Python实现基于ARIMA和LSTM的股票预测模型(Stock-Prediction) Data ExtractionFormatting data for time seriesFeature engineering(Feature Importance using X...

Base64
1. Base64是什么? Base64(基底64)是一种基于64个可打印字符来表示二进制数据的表示方法。每6个比特为一个单元,对应某个可打印字符。3个字节相当于24个比特,对应于4个Base64单元,即3个字节可由4个可打印字…...
二叉搜索树的简单C++类实现
二叉搜索树(BST)是一种重要的数据结构,它对于理解树的操作和算法至关重要,其中序输出是有序的。本文通过C实现一个BST的类,并在插入和删除节点时提供清晰的输出,可视化这些操作的过程。 二叉搜索树的节点结…...

禁毒知识竞赛流程和规则
禁毒知识竞赛是一项全国性竞赛活动。有着深化全国青少年毒品预防教育,巩固学校毒品预防教育成果的重要作用。本文介绍一场禁毒知识竞赛的完整流程和规则,供单位组织此类活动时参考。 1、赛制 第一轮10进6,第二轮6进4,4支队伍决出…...

CSS 基础
文章目录 CSS 常见的属性CSS 常见样式行内样式内嵌样式导入样式 CSS 选择器标签选择器id选择器类选择器全局选择器属性选择器组合选择器 CSS 常见应用表格列表导航栏下拉菜单提示工具图片廊 CSS (Cascading Style Sheets,层叠样式表),是一种用…...

黑色翻页时钟HTML源码-倒计时单页翻页时钟
黑色翻页时钟HTML源码-倒计时单页翻页时钟这是一个类似fliqlo的黑色翻页时钟HTML源码,它仅包含一个HTML文件,上传到网站后即可使用。该时钟具有查看当前时间、秒表和倒计时功能,并且可以在页面的右下角进行设置。 红色动态炫酷数字时钟html网…...

2043杨辉三角(C语言)
目录 一:题目 二:思路分析 三:代码 一:题目 二:思路分析 1.通过杨辉三角,不难发现中间的数等于肩头两个数之和 2.但是当我们的输出结果,与杨辉三角的形式有所不同,但是我们可以找…...

【机器学习】从底层手写实现线性回归
【机器学习】Building-Linear-Regression-from-Scratch 线性回归 Linear Regression0. 数据的导入与相关预处理0.工具函数1. 批量梯度下降法 Batch Gradient Descent2. 小批量梯度下降法 Mini Batch Gradient Descent(在批量方面进行了改进)3. 自适应梯度…...
判断数组中对象的某个值是否有相同的并去重
如果你想判断数组中对象的某个值是否有相同的,并进行去重,你可以使用 JavaScript 中的一些数组方法和 Set 对象。以下是一个示例: // 原始数组包含对象 const array [{ id: 1, name: John },{ id: 2, name: Jane },{ id: 3, name: Doe },{ …...

wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...

企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...