如何在自定义目录中安装 PostgreSQL

当你安装postgresql使用apt-get,它运行initdb并自动创建一个main集群。通常,默认数据目录位置在/var/lib/postgresql/<version>/<cluster>/. .

在自定义目录中安装 PostgreSQL 有三种方法。选项1和2并不理想。

  1. 安装为默认值/var/lib/postgresql/<version>/<cluster>然后把它搬到别的地方。更新数据目录的位置/etc/postgresql/<version>/<cluster>/postgresql.conf. .这并不理想,因为PostgreSQL确保数据目录只能通过postgres创建群集时 linux user。您可以通过自己移动数据目录来错误配置权限。

  2. 运行initdb然而,除非您手动擦除目录,否则这是不可能的。initdb命令会抱怨已经有一个集群main位于/var/lib/postgresql/<version>/<cluster>. .

正确的方式

解决这个问题的正确方法是防止PostgreSQL运行initdb直到您准备好创建一个群集。

  1. 在一个新的系统(没有PostgreSQL)上,安装postgresql-common包第一。请勿安装postgresql还没有。
sudo apt install postgresql-common
  1. 编辑/etc/postgresql-common/createcluster.conf并配置自定义数据目录如下:
# Default values for pg_createcluster(8)
# Occurrences of '%v' are replaced by the major version number,
# and '%c' by the cluster name. Use '%%' for a literal '%'.

# Create a "main" cluster when a new postgresql-x.y server package is installed
create_main_cluster = true

# Default start.conf value, must be one of "auto", "manual", and "disabled".
# See pg_createcluster(8) for more documentation.
#start_conf = 'auto'

# Default data directory.
data_directory = '/my/awesome/location/postgresql/%v/%c'
  1. 安装 PostgreSQL:
sudo apt install postgresql

你应该全部设置。将创建新的数据库文件/my/awesome/localtion/. .

不相关,但确保为密码创建密码postgressuperuser 如下:

sudo -u postgres psql postgres

psql (14.5 (Debian 14.5-1.pgdg110+1))
Type "help" for help.

postgres=# \password
Enter new password for user "postgres":

结局。

### 安装PostgreSQL的概述 在Linux系统中安装PostgreSQL可以通过多种方式实现,具体取决于所使用的发行版及其默认软件仓库中的可用版本。以下是针对不同Linux环境下的安装方法。 --- #### 对于基于Debian/Ubuntu系统的安装 如果使用的是Ubuntu或其他基于Debian的操作系统,则可以利用其内置的APT包管理器来完成安装过程: 1. **更新本地包索引** 首先需要确保本地包列表是最新的: ```bash sudo apt update ``` 2. **安装PostgreSQL及相关工具** 接下来可以直接通过APT命令安装PostgreSQL服务器以及一些常用的客户端程序: ```bash sudo apt install postgresql postgresql-contrib ``` 这里`postgresql-contrib`包含了额外的功能模块[^1]。 3. **验证服务状态** 使用以下命令确认PostgreSQL服务已启动运行: ```bash systemctl status postgresql.service ``` 4. **切换至postgres用户并创建新角色与数据库** 默认情况下会自动创建名为`postgres`的系统账户用于管理数据库实例。进入该用户的shell界面后可执行初始化操作: ```bash sudo su - postgres createuser --interactive createdb mydb exit ``` 对于较老版本的Ubuntu可能无法获取最新发布的PostgreSQL版本,在这种情形下建议参考官方文档添加PGDG (PostgreSQL Global Development Group) APT repository以获得更高版本支持。 --- #### CentOS/RHEL系列上的安装流程 当目标平台为Red Hat家族成员如CentOS时,推荐采用YUM或者DNF作为主要依赖解决手段之一: 1. **启用EPEL源及其他必要资源库** 开始之前需保证扩展功能已被激活以便后续步骤顺利开展: ```bash yum install epel-release yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional ``` 2. **下载并导入GPG密钥** 此举旨在保障来自远程站点的数据真实性不受篡改威胁影响: ```bash rpm -Uvh https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm ``` 3. **实际执行安装动作** 明确指定所需的具体分支号从而精确控制最终产物形态: ```bash yum install postgresql12-server /usr/pgsql-12/bin/postgresql-12-setup initdb systemctl enable postgresql-12 systemctl start postgresql-12 ``` 上述指令序列涵盖了从基本组件引入直至初步配置完毕整个链条环节[^3][^4]。 --- #### 自定义编译构建模式 除了依靠预打包形式之外,还有机会依据个人偏好定制专属特性集组合而成的新镜像成果物。这通常涉及以下几个方面的工作内容: 1. 下载对应tarball压缩档案文件; 2. 解压解档之后按照README指示逐步推进各项参数设定工作; 3. 执行makefile脚本生成二进制可执行单元体; 4. 将成品安置到合适位置同时赋予恰当权限级别设置等等[^2]. --- ### 总结说明 以上分别介绍了适用于不同类型Linux操作系统环境下搭建PostgreSQL环境的不同途径和技术要点。无论是借助现成解决方案还是亲手打造独一无二的作品都能够满足大多数应用场景需求。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值