如何在单个服务器上设置多个 PostgreSQL 实例
介绍
要求
介绍
PostgreSQL 近年来凭借其强大的功能而广受欢迎。这些功能包括存储高级数据结构(例如 JSON、数组)、在高流量环境下的可扩展性,以及专为数据处理而设计的一系列丰富功能。此外,PostgreSQL 还提供了许多其他优势。
在这篇短文中,我将简要讨论在单台机器上创建多个 PostgreSQL 实例的简单方法。根据您的具体使用场景,这是一种非常常见的应用场景。就我而言,我需要测试两个将在不同环境中共存的服务。
要求
- 已安装 PostgreSQL(任意版本)
- Ubuntu(任何版本)
我们假设您已经在端口 5432 上运行了一个 PostgreSQL 服务器。
创建第二个实例的步骤
- 打开 bash 并运行以下命令
$sudo pg_createcluster 12 main1 --port=5433 --start
请为“main1”文件夹和端口号选择您喜欢的名称。端口号不能是5432,因为PostgreSQL默认配置为在5432端口运行。如果您想运行第二个实例,则需要将其配置为使用不同的端口。
此命令将创建另一个名为main1的PostgreSQL集群,并
在5433端口上启动它。
2.
运行此命令将产生以下结果:
3.
修改 Postgres 配置文件以允许更改密码:
当您尝试访问新服务时,您将被拒绝访问。为了简化更改密码的过程,请导航到此文件夹并使用您喜欢的文本编辑器打开 pg_hba.conf 文件。请注意,PostgreSQL 版本可能有所不同。
$sudo nano /etc/postgresql/12/main3/pg_hba.conf
注:
重置密码后,请务必将这些更改恢复到原始配置。这些更改可能会对数据库安全构成威胁。5
.
访问实例:
$sudo su postgres
$psql -U postgres -h localhost -p 5433 -W
6.
更改密码:
psql$\password postgres
psql$\q
重启服务器。
sudo service postgreSQL restart 5433
并将Postgres配置文件更新回原始设置。
sudo nano /etc/postgresql/12/main3/pg_hba.conf
要检查正在运行的postgres实例数量,请使用以下命令:
ps -aux
用于管理实例的实用命令
在这个例子中,我们假设该服务位于 main2 文件夹中。
- 开始服务
sudo pg_ctlcluster 12 main2 start
- 停止服务
sudo pg_ctlcluster 12 main2 stop
- 重启服务
sudo pg_ctlcluster 12 main2 restart
谢谢你!
文章来源:https://dev.to/titon/how-to-set-up-multiple-postgresql-instances-on-a-single-server-15gg




