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

本文详细介绍了在Linux服务器上安装和配置Postgresql12.4的过程,包括创建用户、安装依赖、解压源码、配置编译选项、初始化数据库、启动服务以及可能出现的问题和解决方法。重点在于使用非root用户进行安装,并配置了必要的系统组件和环境变量。
摘要由CSDN通过智能技术生成

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

解析这个命令中的每个参数:

  1. ./configure: 这是一个用于配置源码安装的脚本。它检查系统上是否有必要的库和工具,并设置编译参数。
  2. --prefix=/home/postgresql-12.4: 这个参数设置了安装路径。所有 PostgreSQL 的文件和目录都会被安装到 /home/postgresql-12.4 目录下。
  3. --with-pgport=5432: 这设置了 PostgreSQL 服务器监听的端口号为 5432,这是 PostgreSQL 的默认端口。
  4. --with-perl: 启用对 Perl 编程语言的支持,允许使用 Perl 语言编写 PostgreSQL 的扩展。
  5. --with-tcl: 启用对 Tcl 编程语言的支持,允许使用 Tcl 语言编写 PostgreSQL 的扩展。
  6. --with-python: 启用对 Python 编程语言的支持,允许使用 Python 语言编写 PostgreSQL 的扩展。
  7. --with-openssl: 启用 OpenSSL 支持,用于加密 PostgreSQL 的连接和数据传输。
  8. --with-pam: 启用 PAM (Pluggable Authentication Modules) 支持,允许使用 PAM 进行用户身份验证。
  9. --without-ldap: 不启用 LDAP (轻量级目录访问协议) 支持。这通常意味着 PostgreSQL 将不使用 LDAP 进行用户认证。
  10. --with-libxml: 启用对 libxml2 的支持,这是一个用于解析 XML 的库。
  11. --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

在这里插入图片描述
登录数据库

psql -U postgres -d postgres

6.可能遇到的问题

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

chown -R postgres:root /home/postgresql-12.4  
Siremis 的安装和配置过程在 Oracle Linux 7.6 上与在 Ubuntu 上略有不同。以下是在 Oracle Linux 7.6 上安装和配置 Siremis 的步骤: 1. 安装 Web 服务器 首先,你需要安装一个 Web 服务器,例如 Apache 或 Nginx。这里以 Apache 为例,安装命令为: ``` sudo yum install httpd ``` 2. 安装 PHP 和依赖项 Siremis 是用 PHP 编写的,因此需要安装 PHP 和相关依赖项。在 Oracle Linux 上,你可以运行以下命令来安装它们: ``` sudo yum install php php-mysqlnd php-curl php-cli php-gd php-mbstring ``` 3. 安装 Kamailio Siremis 是一个 Kamailio 管理界面,因此需要先安装 Kamailio。在 Oracle Linux 上,你可以使用以下命令来安装 Kamailio: ``` sudo yum install kamailio kamailio-tls kamailio-presence kamailio-outbound kamailio-mysql kamailio-xml kamailio-ldap kamailio-json ``` 4. 安装数据库 Siremis 支持 MySQL 和 PostgreSQL 数据库。在这里,我们以 MySQL 数据库为例。使用以下命令安装 MySQL: ``` sudo yum install mysql-server ``` 然后,启动 MySQL 服务并设置 root 密码: ``` sudo systemctl start mysqld sudo systemctl enable mysqld sudo mysql_secure_installation ``` 5. 创建 Siremis 数据库 在 MySQL 中创建一个新的数据库和用户,并为该用户授予对该数据库的所有权限。在此示例中,我们将数据库命名为 `siremisdb`,用户名为 `siremisuser`: ``` sudo mysql -u root -p CREATE DATABASE siremisdb; CREATE USER 'siremisuser'@'localhost' IDENTIFIED BY 'siremispassword'; GRANT ALL PRIVILEGES ON siremisdb.* TO 'siremisuser'@'localhost'; FLUSH PRIVILEGES; exit ``` 6. 下载 Siremis 你可以从官方网站下载 Siremis: ``` wget https://github.com/siremis/siremis/archive/master.zip ``` 7. 解压并安装 Siremis 将下载的 Siremis 解压到 Apache 的 document root 目录(例如 /var/www/html)中。然后,将 config.php.example 重命名为 config.php,并编辑它以配置数据库信息: ``` cp config.php.example config.php nano config.php ``` 在这里,你需要配置数据库的用户名、密码、主机和数据库名称。 8. 配置 Apache 在 Apache 的配置文件中添加以下内容: ``` Alias /siremis /var/www/html/siremis <Directory /var/www/html/siremis> Options FollowSymLinks AllowOverride None Require all granted </Directory> ``` 9. 重启 Apache 和 Kamailio 完成上述步骤后,您需要重新启动 Apache 和 Kamailio: ``` sudo systemctl restart httpd sudo systemctl restart kamailio ``` 现在,你可以在浏览器中访问 http://your_ip_address/siremis 来访问 Siremis 管理界面。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值