dedecms 网站首页标签,网站建设技术合同模板下载,中国建设银行对公网站首页,phpcms 下载网站模板openEuler 源码安装 PostgreSQL 部署环境说明Shell 前端软件包管理器基础概念YUM 简介DNF 简介 源码安装 PostgreSQL环境变量#xff08;env#xff09;设置临时环境变量设置永久环境变量设置 初始化数据库#xff08;initdb#xff09; 数据库基本操作数据库基本配置… openEuler 源码安装 PostgreSQL 部署环境说明Shell 前端软件包管理器基础概念YUM 简介DNF 简介 源码安装 PostgreSQL环境变量env设置临时环境变量设置永久环境变量设置 初始化数据库initdb 数据库基本操作数据库基本配置postgresql.conf启动、停止、查看数据库使用 psql 登录数据库查看数据库版本信息更多postgres/pg_ctl命令说明 部署环境说明 Linux 系统openEuler 22.03 LTS SP3 x86_64下载地址openEuler下载 | 欧拉系统ISO镜像 | openEuler社区官网 数据库postgresql-15.6下载地址https://ftp.postgresql.org/pub/source/v15.6/postgresql-15.6.tar.gz Shell 前端软件包管理器基础概念
YUM 简介 YUM全称为 Yellow dog Updater, Modified是一个在 Fedora 和 RHEL、CentOS、OEL 中的 Shell 前端软件包管理器。
YUM 本身基于 RPM 包管理能够从指定的 YUM 源服务器一个或多个自动下载 RPM 包并且进行安装和更新可以自动处理依赖性关系并且一次安装所有依赖的软件包无须繁琐地一次次下载、安装。
要成功的使用 YUM 工具安装更新软件或系统就需要有一个包含各种 RPM 软件包的 repository软件仓库这个软件仓库我们习惯称为 YUM 源 (可以是本地源、网络源)。
DNF 简介 DNF全称为 Dandified yum是新一代的 rpm 软件包管理器他首先出现在 Fedora 18 这个发行版中。而最近它取代了 yum正式成为 Fedora 22 的包管理器。
DNF 在 RHEL、CentOS、OEL 等系统中从版本 8 开始出现目前和 YUM 共存。
DNF 克服了 YUM 包管理器的一些瓶颈提升了包括用户体验内存占用依赖分析运行速度等多方面的内容。
DNF 使用 Hawkey 库该库解析 RPM 依赖性以在客户端计算机上运行查询。 它们基于 libsolv 构建libsolv 是一种使用可满足性算法的程序包相关性求解器。 您可以在 libsolv 的 GitHub 存储库中找到有关该算法的更多详细信息。 在 openEuler 22.03 系统中默认使用 dnf 作为 rpm 软件包管理器接下来我们也会使用该命令进行一些相关的操作。
源码安装 PostgreSQL
查看 linux 软件源。
vi /etc/dnf/dnf.conf
[repo-id 名称]
name取个名字随意(通常和 repo-id 名称相同)
baseurl软件源地址# 或者vi /etc/yum.repos.d/openEuler.repo[OS]
nameOS
baseurlhttp://repo.openeuler.org/openEuler-22.03-LTS-SP3/OS/$basearch/
metalinkhttps://mirrors.openeuler.org/metalink?repo$releasever/OSarch$basearch
metadata_expire1h
enabled1
gpgcheck1
gpgkeyhttp://repo.openeuler.org/openEuler-22.03-LTS-SP3/OS/$basearch/RPM-GPG-KEY-openEuler参考设置 openEuler(欧拉系统)安装源 安装编译环境依赖包推荐使用 dnf 。
# yum 安装
sudo yum install -y systemtap-sdt-devel.x86_64 perl-ExtUtils-Embed bzip2 readline readline-devel lz4 lz4-devel openssl openssl-devel pam pam-devel libxml2 libxml2-devel libxslt libxslt-devel tcl tcl-devel openldap openldap-devel python3 python3-devel kernel-headers autoconf proj.x86_64 vim nc wget psmisc gcc-c gcc lrzsz make cmake telnet net-tools bind-utils tree cifs-utils ntpdate bash-completion sysstat iotop iftop htop unzip nmap bc bind-utils nethogs# dnf 安装
sudo dnf install -y perl-ExtUtils-Embed readline-devel python3-devel pam-devel libxml2-devel libxslt-devel openldap-devel lz4-devel llvm-devel systemd-devel container-selinux selinux-policy-devel openssl-devel gcc-c gcc cmake lsof net-tools说明openEuler 使用 dnf 作为默认包管理工具。 下载 postgresql 源码。
// 1. 切换到 /opt/postgresql 目录下
cd /opt/postgresql
// 2. 使用命令下载 postgresql
wget https://ftp.postgresql.org/pub/source/v15.6/postgresql-15.6.tar.gz
// 3. 解压文件
sudo tar -zxvf postgresql-15.6.tar.gz
// 4. 创建文件夹目录用来存放安装 postgresql 的相关文件
sudo mkdir -p /pgccc/pgdata/data编译和安装 postgresql 。
// 1. 检测系统环境并生成 Makefile 文件prefix 默认安装路径 /opt/postgresql/pgsql
./configure --prefix/pgccc/pgdata --with-perl --with-python --with-pam --with-libxml --with-libxslt --with-ldap --with-lz4 --with-llvm --with-systemd --with-selinux --with-openssl // 2. 编译 安装
gmake world gmake install-worldgmake 与 gmake install 是两个命令参数说明 gmake编译依据 Makefile 文件把源码包编译成二进制可执行文件。 gmake install 安装的意思。
gmake gmake install 的意思就是执行 gmake 如果没有发生错误就执行 gmake install。
查看 postgresql 安装目录。
ls -al /pgccc/pgdata/输出信息
[rooteuler /]# ls -al /pgccc/pgdata/
总用量 28
drwxr-xr-x. 7 root root 4096 2月 29 20:28 .
drwxr-xr-x. 3 root root 4096 2月 29 20:11 ..
drwxr-xr-x. 2 root root 4096 2月 29 20:17 bin
drwxr-xr-x. 2 root root 4096 2月 29 20:28 data
drwxr-xr-x. 4 root root 4096 2月 29 20:17 include
drwxr-xr-x. 4 root root 4096 2月 29 20:17 lib
drwxr-xr-x. 5 root root 4096 2月 29 20:文件目录说明
bin 存放二进制文件include 存放 .h 头文件lib 存放安装所需的各种依赖库动态库share 存放所需的插件extension组件
环境变量env设置
临时环境变量设置
编写 shell 脚本
vi pgsql-15.6-env.sh
# 写入环境变量配置信息
export PGHOME/pgccc/pgdata
export PGHOSTlocalhost
export PATH$PGHOME/bin:$PATH:$HOME/bin
#export PATH/pgccc/pgdata/bin:$PATH
export LD_LIBRARY_PATH/pgccc/pgdata/lib:$LD_LIBRARY_PATH
export PGDATA/pgccc/pgdata/data
export PGPORT5432
export PGUSERpostgres执行命令运行该文件临时生成一下
source pgsql-15.6-env.sh查看初始化 db 版本信息目的验证环境变量是否生效
initdb --version查看当前系统使用编码集
echo $LANG永久环境变量设置
环境变量配置文件 profile 不推荐全局修改。可以使用命令输出当下用户环境变量信息
env 或 peintenv参考Linux系统中.bash_profile文件详解_Linux_脚本之家 (jb51.net) 初始化数据库initdb 注意源码安装PostgreSQL 数据库没有默认的 postgres 用户需自行手动创建用户组和用户并设置密码。 原因root 不能执行 PostgreSQL 的一些命令因此要创建 postgres 这个用户。 初始化数据库
initdb -D /pgccc/pgdata/data注意使用非 root 授权用户执行初始化数据库命令。 若出现如下错误信息
initdb: error: cannot be run as root
initdb: hint: Please log in (using, e.g., su) as the (unprivileged) user that will own the server process.解决办法
# 添加非 root 用户 postgres
sudo useradd postgres
# 给 postgres 用户设置密码
sudo passwd postgres
# 在相对应目录创建文件夹
sudo mkdir /pgccc/pgdata/data
# 给 postgres 用户授权 data 目录可执行权限
sudo chown -R postgres:postgres /pgccc/pgdata/data
# 初始化数据库实例
initdb -D /pgccc/pgdata/data -U postgres
# 启动数据库实例
pg_ctl start -D /pgccc/pgdata/data -l logfile
# 查看启动日志文件信息
cat ./logfile查看更多 initdb 命令帮助信息
initdb --help数据库基本操作
数据库基本配置postgresql.conf
配置数据库监听 IP 和端口port
vi /pgccc/pgdata/data/postgresql.conf修改 listen_addresses 和 port
#------------------------------------------------------------------------------
# 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)
max_connections 100 # (change requires restart)
#superuser_reserved_connections 3 # (change requires restart)
#unix_socket_directories /tmp # comma-separated list of directories# (change requires restart)
#unix_socket_group # (change requires restart)
#unix_socket_permissions 0777 # begin with 0 to use octal notation# (change requires restart)
#bonjour off # advertise server via Bonjour# (change requires restart)
#bonjour_name # defaults to the computer name# (change requires restart)修改说明 listen_addresses 默认值 localhost 只允许本地登录配置为 “*” 代表在本机的所有地址上监听。 port 默认值 5432如果安装了多个数据库实例则需要为每个实例指定不同的监听端口。
配置数据库错误日志
#------------------------------------------------------------------------------
# REPORTING AND LOGGING
#------------------------------------------------------------------------------# - Where to Log -#log_destination stderr # Valid values are combinations of# stderr, csvlog, jsonlog, syslog, and# eventlog, depending on platform.# csvlog and jsonlog require# logging_collector to be on.# This is used when logging to stderr:
logging_collector on # Enable capturing of stderr, jsonlog,# and csvlog into log files. Required# to be on for csvlogs and jsonlogs.# (change requires restart)# These are only used if logging_collector is on:
log_directory pg_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,# can include strftime() escapes
#log_file_mode 0600 # creation mode for log files,# begin with 0 to use octal notation
#log_rotation_age 1d # Automatic rotation of logfiles will# happen after that time. 0 disables.
#log_rotation_size 10MB # Automatic rotation of logfiles will# happen after that much log output.# 0 disables.修改说明 logging_collector on 默认为 off。 log_directory pg_log 默认为 log相对路径即 ${PGDATA}/pg_log。也可以改为绝对路径还可以定义在其他目录或者分区但是必须先创建此目录并且该目录有修改权限。 log_filename postgresql-%Y-%m-%d_%H%M%S.log。 参考PostgreSQL 日志参数解释 常用环境日志参数配置_log_min_duration_statement-CSDN博客 启动、停止、查看数据库
可能出现类似的异常信息
异常一
pg_ctl: cannot be run as root
Please log in (using, e.g., su) as the (unprivileged) user that will
own the server process.解决方案改用非 root 账号执行 pt_ctl 相关命令即可。
su postgres异常二
[jeffeuler ~]$ pg_ctl --help
-bash: pg_ctl未找到命令解决方案由于上面 postgresql 环境变量配置过程中使用的临时方式切换用户后请重新执行下该命令。
source pgsql-15.6-env.sh启动数据库
pg_ctl start -D /pgccc/pgdata/data输出信息
waiting for server to start....2024-02-29 22:15:38.584 CST [125692] LOG: redirecting log output to logging collector process
2024-02-29 22:15:38.584 CST [125692] HINT: Future log output will appear in directory pg_log.done
server started停止数据库
pg_ctl stop -D /pgccc/pgdata/datapg_ctl stop 命令语法说明
pg_ctl stop [-D DATADIR] [-m SHUTDOWN-MODE]参数说明-m 是指数据库的停止方式可选 3 种方式 smart待所有连接终止后关闭数据库。 fast快速断开连接并关闭数据库。 immediate立刻关闭数据库下次启动数据库需要进行恢复。
如果不指定 -m则默认使用 fast 方式关闭数据库。
重启数据库
pg_ctl restart -D /pgccc/pgdata/data查看数据库运行状态
方法一pg_ctl status 命令查看
pg_ctl status -D /pgccc/pgdata/data输出信息
pg_ctl: server is running (PID: 125692)
/pgccc/pgdata/bin/postgres -D /pgccc/pgdata/data方法二查看 postgres 进程信息
ps -ef | grep postgres
# 推荐使用下面方式可以清晰看出层级结构
ps -axjf | grep postgres # 查看指定进程相关信息
lsof -p pid输出 pid1814 此处为 postgres 实例的进程信息
[rooteuler ~]# lsof -p 1814
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
postgres 1814 postgres cwd DIR 253,0 4096 1447087 /pgccc/pgdata/data2
postgres 1814 postgres rtd DIR 253,0 4096 2 /
postgres 1814 postgres txt REG 253,0 9363776 1444452 /pgccc/pgdata/bin/postgres
postgres 1814 postgres DEL REG 0,1 1025 /dev/zero
postgres 1814 postgres mem REG 253,0 19037712 3016591 /usr/lib/locale/locale-archive
postgres 1814 postgres mem REG 253,0 157976 3019397 /usr/lib64/libgpg-error.so.0.33.1
postgres 1814 postgres mem REG 253,0 223368 3018526 /usr/lib64/libcrypt.so.1.1.0
postgres 1814 postgres mem REG 253,0 63984 3018081 /usr/lib64/libresolv.so.2
postgres 1814 postgres mem REG 253,0 30840 3019511 /usr/lib64/libcap-ng.so.0.0.0
postgres 1814 postgres mem REG 253,0 1333016 3019544 /usr/lib64/libgcrypt.so.20.4.2
postgres 1814 postgres mem REG 253,0 43240 3030139 /usr/lib64/libcap.so.2.61
postgres 1814 postgres mem REG 253,0 117616 3020069 /usr/lib64/libsasl2.so.3.0.0
postgres 1814 postgres mem REG 253,0 68040 3027871 /usr/lib64/liblber.so.2.0.200
postgres 1814 postgres mem REG 253,0 133256 3019522 /usr/lib64/libaudit.so.1.0.0
postgres 1814 postgres mem REG 253,0 161992 3018465 /usr/lib64/liblzma.so.5.2.5
postgres 1814 postgres mem REG 253,0 2055336 3018072 /usr/lib64/libc.so.6
postgres 1814 postgres mem REG 253,0 812088 3030154 /usr/lib64/libsystemd.so.0.32.0
postgres 1814 postgres mem REG 253,0 397056 3027873 /usr/lib64/libldap.so.2.0.200
postgres 1814 postgres mem REG 253,0 891176 3018075 /usr/lib64/libm.so.6
postgres 1814 postgres mem REG 253,0 100552 3018407 /usr/lib64/libz.so.1.2.11
postgres 1814 postgres mem REG 253,0 3047192 3035664 /usr/lib64/libcrypto.so.1.1.1wa
postgres 1814 postgres mem REG 253,0 628816 3035666 /usr/lib64/libssl.so.1.1.1wa
postgres 1814 postgres mem REG 253,0 67784 3031855 /usr/lib64/libpam.so.0.85.1
postgres 1814 postgres mem REG 253,0 1492264 3015964 /usr/lib64/libxml2.so.2.9.14
postgres 1814 postgres mem REG 253,0 133240 3019814 /usr/lib64/liblz4.so.1.9.3
postgres 1814 postgres mem REG 0,23 26976 2 /dev/shm/PostgreSQL.2062550190
postgres 1814 postgres mem REG 253,0 199960 3018068 /usr/lib64/ld-linux-x86-64.so.2
postgres 1814 postgres DEL REG 0,1 0 /SYSV001614af
postgres 1814 postgres 0r CHR 1,3 0t0 4 /dev/null
postgres 1814 postgres 1w FIFO 0,12 0t0 20345 pipe
postgres 1814 postgres 2w FIFO 0,12 0t0 20345 pipe
postgres 1814 postgres 3r FIFO 0,12 0t0 20344 pipe
postgres 1814 postgres 4w FIFO 0,12 0t0 20344 pipe
postgres 1814 postgres 5r FIFO 0,12 0t0 20345 pipe
postgres 1814 postgres 6u IPv4 20349 0t0 TCP *:personal-agent (LISTEN)
postgres 1814 postgres 7u IPv6 20350 0t0 TCP *:personal-agent (LISTEN)
postgres 1814 postgres 8u unix 0x0000000009ef7753 0t0 20351 /tmp/.s.PGSQL.5555 typeSTREAM (LISTEN)说明linux 系统中 lsof 命令加 -p 是指定进程不加 -p 的是线程。 方法三查看数据库状态
pg_isready -p 5432方法四判断监听端口
# 安装 net-tools
dnf install -y net-tools
# 监听端口
netstat -nutlp | grep 5432输出信息
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 1814/postgres
tcp6 0 0 :::5432 :::* LISTEN 1814/postgres 使用 psql 登录数据库
psql 是一个客户端命令工具可以对数据库实例执行相关操作。 说明psql 连接数据库不指定的情况下默认连接 5452 端口且使用当前用户查找同名 DB 实例。 登录方式一
psql postgresql://postgres:pg123172.17.0.3:5432/postgres参数说明 postgresql协议名称。 postgres数据库用户名。 pg123用户密码。 172.17.0.3数据库 IP 地址。 5432数据库实例监听端口。 postgres需要访问的数据库名称。
登录方式二
psql -U postgres -h 172.17.0.3 -p 5432 -d postgres参数说明 -Upostgresql 用户名。 -h数据库 IP 地址。 -p数据库实例监听端口。 -d需要访问的数据库名称。
登录方式三使用 psql 直接连接数据库需要通过设置 postgres 用户的环境变量env来实现。
psql参考PostgreSQL psql两种登录方式_postgresql登录-CSDN博客 查看 pgsql 更多帮助信息
psql --help查看数据库版本信息
登录数据库后查看数据库服务端版本信息
[postgreseuler /]$ psql -U postgres -p 5432 -d postgres
psql (15.6)
Type help for help.postgres# select version();version
------------------------------------------------------------------------------PostgreSQL 15.6 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 10.3.1, 64-bit
(1 row)postgres# SHOW server_version;server_version
----------------15.6
(1 row)postgres# SHOW server_version_num;server_version_num
--------------------150006
(1 row)推出 psql 查看数据库服务端版本信息
postgres-# \q
[postgreseuler /]$ postgres --version
postgres (PostgreSQL) 15.6查看数据库客户端工具版本信息
psql --version注意psql --version 返回的是 psql 工具的版本而不是服务器版本。 更多postgres/pg_ctl命令说明 说明pg_ctl 命令本质上是包装了 postgres 的命令操作推荐使用 pg_ctl 命令。 pg_ctl --help
[postgreseuler /]$ pg_ctl --help
pg_ctl is a utility to initialize, start, stop, or control a PostgreSQL server.Usage:pg_ctl init[db] [-D DATADIR] [-s] [-o OPTIONS]pg_ctl start [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s][-o OPTIONS] [-p PATH] [-c]pg_ctl stop [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]pg_ctl restart [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s][-o OPTIONS] [-c]pg_ctl reload [-D DATADIR] [-s]pg_ctl status [-D DATADIR]pg_ctl promote [-D DATADIR] [-W] [-t SECS] [-s]pg_ctl logrotate [-D DATADIR] [-s]pg_ctl kill SIGNALNAME PIDCommon options:-D, --pgdataDATADIR location of the database storage area-s, --silent only print errors, no informational messages-t, --timeoutSECS seconds to wait when using -w option-V, --version output version information, then exit-w, --wait wait until operation completes (default)-W, --no-wait do not wait until operation completes-?, --help show this help, then exit
If the -D option is omitted, the environment variable PGDATA is used.Options for start or restart:-c, --core-files allow postgres to produce core files-l, --logFILENAME write (or append) server log to FILENAME-o, --optionsOPTIONS command line options to pass to postgres(PostgreSQL server executable) or initdb-p PATH-TO-POSTGRES normally not necessaryOptions for stop or restart:-m, --modeMODE MODE can be smart, fast, or immediateShutdown modes are:smart quit after all clients have disconnectedfast quit directly, with proper shutdown (default)immediate quit without complete shutdown; will lead to recovery on restartAllowed signal names for kill:ABRT HUP INT KILL QUIT TERM USR1 USR2Report bugs to pgsql-bugslists.postgresql.org.
PostgreSQL home page: https://www.postgresql.org/postgres --help
[postgreseuler /]$ postgres --help
postgres is the PostgreSQL server.Usage:postgres [OPTION]...Options:-B NBUFFERS number of shared buffers-c NAMEVALUE set run-time parameter-C NAME print value of run-time parameter, then exit-d 1-5 debugging level-D DATADIR database directory-e use European date input format (DMY)-F turn fsync off-h HOSTNAME host name or IP address to listen on-i enable TCP/IP connections-k DIRECTORY Unix-domain socket location-l enable SSL connections-N MAX-CONNECT maximum number of allowed connections-p PORT port number to listen on-s show statistics after each query-S WORK-MEM set amount of memory for sorts (in kB)-V, --version output version information, then exit--NAMEVALUE set run-time parameter--describe-config describe configuration parameters, then exit-?, --help show this help, then exitDeveloper options:-f s|i|o|b|t|n|m|h forbid use of some plan types-n do not reinitialize shared memory after abnormal exit-O allow system table structure changes-P disable system indexes-t pa|pl|ex show timings after each query-T send SIGSTOP to all backend processes if one dies-W NUM wait NUM seconds to allow attach from a debuggerOptions for single-user mode:--single selects single-user mode (must be first argument)DBNAME database name (defaults to user name)-d 0-5 override debugging level-E echo statement before execution-j do not use newline as interactive query delimiter-r FILENAME send stdout and stderr to given fileOptions for bootstrapping mode:--boot selects bootstrapping mode (must be first argument)--check selects check mode (must be first argument)DBNAME database name (mandatory argument in bootstrapping mode)-r FILENAME send stdout and stderr to given filePlease read the documentation for the complete list of run-time
configuration settings and how to set them on the command line or in
the configuration file.Report bugs to pgsql-bugslists.postgresql.org.
PostgreSQL home page: https://www.postgresql.org/