Linux服务器上的Postgresql 安装与配置
首先说明下我安装的是Postgresql 版本为12.4
官网下载地址:
https://ftp.postgresql.org/pub/source/v12.4/postgresql-12.4.tar.gz
1.准备
准备好 postgresql 的安装包,以下操作以 12.4 版本为例。
建议使用 root 用户新建普通用户“postgres”仅用于安装 postgresql 数据库。
请在root用户下操作,命令如下:
groupadd postgres
useradd postgres -d /home/postgres -g postgres
passwd postgres
请记住设计的密码,如果密码和用户名重复还会提醒你,但是还是会生效
tips:如果忘记了新创建的用户密码,
请切换到root并使用命令格式:passwd+“用户名”
会要求你输入新密码,并再重复输入,同样如果密码和用户名重复还会提醒你,但是还是会生效
2.安装依赖的系统组件
切换到 root 用户安装依赖的系统组件,命令如下:
请先Su root
再执行以下命令:
yum -y install gcc perl-ExtUtils-Embed readline-devel zlib-devel
openssl-devel pam pam-devel libxml2-devel libxslt-devel tcl tcl-devel
python-devel docbook-style-dsssl flex bison openjade
3.解压并安装(记得新建存放压缩包的目录并放入)
切换到 postgres 用户
请先su postgres
在目录下解压安装包:
tar -xvf postgresql-12.4.tar.gz
请记住你解压的目录,会多次用到!
请记住你解压的目录,会多次用到!
请记住你解压的目录,会多次用到!
进入解压的目录,
创建data和log目录
mkdir /所在目录/data
mkdir /所在目录/log
执行预编译命令:
cd +所在目录
./configure --prefix=/home/postgresql-12.4 --with-pgport=5432 --with-perl --with-tcl --with-python --with-openssl --with-pam --without-ldap --with-libxml --with-libxslt
解析这个命令中的每个参数:
-
./configure
: 这是一个用于配置源码安装的脚本。它检查系统上是否有必要的库和工具,并设置编译参数。 -
--prefix=/home/postgresql-12.4
: 这个参数设置了安装路径。所有 PostgreSQL 的文件和目录都会被安装到/home/postgresql-12.4
目录下。 -
--with-pgport=5432
: 这设置了 PostgreSQL 服务器监听的端口号为 5432,这是 PostgreSQL 的默认端口。 -
--with-perl
: 启用对 Perl 编程语言的支持,允许使用 Perl 语言编写 PostgreSQL 的扩展。 -
--with-tcl
: 启用对 Tcl 编程语言的支持,允许使用 Tcl 语言编写 PostgreSQL 的扩展。 -
--with-python
: 启用对 Python 编程语言的支持,允许使用 Python 语言编写 PostgreSQL 的扩展。 -
--with-openssl
: 启用 OpenSSL 支持,用于加密 PostgreSQL 的连接和数据传输。 -
--with-pam
: 启用 PAM (Pluggable Authentication Modules) 支持,允许使用 PAM 进行用户身份验证。 -
--without-ldap
: 不启用 LDAP (轻量级目录访问协议) 支持。这通常意味着 PostgreSQL 将不使用 LDAP 进行用户认证。 -
--with-libxml
: 启用对 libxml2 的支持,这是一个用于解析 XML 的库。 -
--with-libxslt
: 启用对 libxslt 的支持,这是一个用于转换 XML 的库。
总之,这个命令是为了配置 PostgreSQL 数据库的安装,设置安装路径、端口号,并启用或禁用各种功能和库的支持。
成功后的部分日志如下:
以下是日志不需要执行
config.status: creating src/include/pg_config_ext.h
config.status: src/include/pg_config_ext.h is unchanged
config.status: creating src/interfaces/ecpg/include/ecpg_config.h
config.status: src/interfaces/ecpg/include/ecpg_config.h is unchanged
config.status: linking src/backend/port/tas/dummy.s to
src/backend/port/tas.s
config.status: linking src/backend/port/dynloader/linux.c to
src/backend/port/dynloader.c
config.status: linking src/backend/port/sysv_sema.c to
src/backend/port/pg_sema.c
config.status: linking src/backend/port/sysv_shmem.c to
src/backend/port/pg_shmem.c
config.status: linking src/backend/port/dynloader/linux.h to
src/include/dynloader.h
config.status: linking src/include/port/linux.h to
src/include/pg_config_os.h
编译和安装,继续执行命令:
gmake world
gmake install-world
4. 配置环境变量
root用户下
vi /etc/profile
新增行输入
export PGHOME=/你自己的安装目录/postgresql
export PGDATA=/你自己的安装目录/postgresql/data
export PATH=$PATH:JAVA_HOME/bin:$PGHOME/bin
记得保存退出 -wq
5.初始化数据库
不要在 root 用户下初始数据库,否则会报错
initdb: cannot be run as root
Please log in (using, e.g., “su”) as the (unprivileged) user that will
own the server process.
还是在用户postgres下,记得切换
进入安装后的 postgresql 目录,执行初始化数据库命令:
该命令下的目录是我的自解压目录,还是请以自己的目录为准。
其中第一个目录是PostgreSQL 的 initdb 命令的完整路径。initdb 命令用于创建新的 PostgreSQL 数据库集群。
-D “/home/sdjk/soft/postgresql-12.4/data”: 这个参数指定了新数据库集群的存储位置。
-U postgres: 这个参数指定了创建新数据库集群时使用的用户名。在初始化过程中,postgres用户将被用来创建必要的文件和目录。
-W: 这个参数告诉 initdb 在创建新数据库集群时进行密码提示
示例命令:
/home/sdjk/soft/postgresql-12.4/bin/initdb -D "/home/sdjk/soft/postgresql-12.4/data" -U postgres -W
需要输入、再次输入数据库管理员账号密码:
初始化成功后,出现以下信息:
Success. You can now start the database server using:
/home/postgres/pg12.4/bin/pg_ctl -D /home/postgres/pgdata -l
logfile start
5.启动
使用初始化完成后系统提供的启动命令,如下:
/home/postgres/pg12.4/bin/pg_ctl -D /home/postgres/pgdata -l logfile start
启动成功会出现如下日志:
server starting
6.验证
验证 postgresql 是否启动成功:
ps -ef|grep postgres
登录数据库文章来源:https://www.toymoban.com/news/detail-728278.html
psql -U postgres -d postgres
6.可能遇到的问题
1.xx文件夹 could not change directory to “/root”: 权限不够
是不是用root而不是新用户解压的 要改一下使用chown设置文件夹的所有子文件夹和文件的所有权
在root下操作 chown -R postgres:root +目录即可 如:文章来源地址https://www.toymoban.com/news/detail-728278.html
chown -R postgres:root /home/postgresql-12.4
到了这里,关于Linux服务器上的Postgresql 安装与配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!