Linux服务器上的Postgresql 安装与配置

发布于:2023-09-14 ⋅ 阅读:(197) ⋅ 点赞:(0)

Linux服务器上的Postgresql 安装与配置

首先说明下Postgresql 版本为12.4
官网下载地址:
https://ftp.postgresql.org/pub/source/v12.4/postgresql-12.4.tar.gz

1.准备

准备好 postgresql 的安装包,推荐版本 12.4 版本,以下操作以 12.4 版本为例。
建议使用 root 用户新建普通用户“postgres”仅用于安装 postgresql 数据库。

$ groupadd postgres 
$ useradd postgres -d /home/postgres -g postgres 
$ passwd postgres

最好记住设计的密码,如果密码和用户名重复多还会提醒你,但是还是会生效
忘记了新创建的用户密码 切换到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

请记住你解压的目录,会多次用到!
请记住你解压的目录,会多次用到!
请记住你解压的目录,会多次用到!
进入解压的目录,
创建文件夹

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

成功后的部分日志如下:

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 用户下初始数据库,否则会报错

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 目录,执行初始化数据库命令:

/home/sdjk/soft/postgresql-12.4/bin/initdb -D "/home/sdjk/soft/postgresql-12.4/data" -U pgdts -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

在这里插入图片描述
说一下可能遇到的问题吧

1.xx文件夹 could not change directory to “/root”: 权限不够
是不是用root而不是新用户解压的 要改一下使用chown设置文件夹的所有子文件夹和文件的所有权
在root下操作 chown -R postgres:root +目录即可 如:

chown -R postgres:root /home/postgresql-12.4  
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到