同一台机器上安装两个postgresql使用并相同端口号的情况分析

0. 事情的起源

公司计划产出一版骨科用的假体规划软件,打包成一个可执行文件,以方便安装。
最开始的时候,软件被设计安装在特殊的电脑上;而这规划软件是从之前总的软件上裁剪出部分功能,且不想做大的改动,因此数据库就使用之前的数据库软件,连接方式等也不想有改动。
但是由于易用性和数据保密性的要求,不能让用户自己设置数据库密码并创建数据库。
因此就涉及到,多个数据库的自动安装与控制。

1. 测试的版本

操作系统:windows 10 专业版

安装方式软件版本
exe版12.2-2
绿色版12.8.1

2. postgresql数据库作为服务启动

postgresql数据库作为服务启动,需要注册对应的服务。
exe版本会要求设置服务名,并开启开机启动服务。
对于绿色安装版本,切换到绿色数据库的解压目录,使用如下的命令:

   bin\initdb -D "%PGDATA%" --locale=chinese-simplified_china.936 -E UTF-8 -U postgres -A password --pwfile="%PGSECRETPATH%"\pwfile
   bin\pg_ctl register -N "PostgreSQL-SpecialName" -D "%PGDATA%"

如果两个都安装完成的话,系统中就存在两个服务了,包含postgresql-x64(假设这个是使用exe安装的服务名)和绿色版新增加的PostgreSQL-SpecialName
经过测试,这两个服务是能同时启动并运行的。

3. 同时运行的服务相同的端口号

由于之前没有修改默认的配置,因此同时运行的这两个服务使用的端口号相同。
最开始的时候,我在网上查找资料,都没有说过类似的问题,一半最多就是提示设置成不同端口号。
但是这样能够运行起来的两个数据库服务,相同的端口号,那么我使用端口号访问数据库,会出现什么现象呢?

4. 数据库的访问

当两个服务同时运行时,使用端口号访问数据库,发现数据库是能够被访问的,访问的是其中一个数据库的内容。
停止能够访问到的数据库的服务,那么再访问时就能够访问到另一个运行的服务的数据库内容了。
如果再将停止掉的服务运行起来,发现后启动服务的数据库是不能被访问到的;但是停掉正在被访问数据库的服务,就能被访问到了。

5. 小结

  • 同一台机器上能够安装多个postgresql数据库
  • 不同postgresql数据库在同一台机器上要使用不同的服务名字才能都运行起来
  • 同一台机器上能够运行使用相同端口的不同服务名称的postgresql数据库,但是对于数据的访问存在混淆,最好别这样做
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是基于完整离线包安装 PostgreSQL 14 并将端口号调整为 2282 的步骤: 1. 下载 PostgreSQL 14 的完整离线包。可以从 PostgreSQL 的官方网站下载,也可以从其他可信的网站下载。 2. 解压离线包到合适的目录。例如,可以将离线包解压到 /opt 目录下。 3. 创建 PostgreSQL 用户和组。可以使用以下命令创建: ``` sudo groupadd postgres sudo useradd -r -g postgres postgres ``` 4. 修改解压后的目录的所有者和组为 postgres。可以使用以下命令: ``` sudo chown -R postgres:postgres /opt/postgresql-14.0 ``` 5. 创建一个数据目录。可以使用以下命令创建: ``` sudo mkdir /var/pgsql/data ``` 6. 将数据目录的所有者和组设置为 postgres: ``` sudo chown postgres:postgres /var/pgsql/data ``` 7. 初始化数据库。可以使用以下命令: ``` sudo su - postgres /opt/postgresql-14.0/bin/initdb -D /var/pgsql/data exit ``` 8. 修改 PostgreSQL 的配置文件。可以使用以下命令打开配置文件: ``` sudo vi /var/pgsql/data/postgresql.conf ``` 在文件中找到以下行: ``` #listen_addresses = 'localhost' # what IP address(es) to listen on; ``` 将其修改为: ``` listen_addresses = '*' ``` 然后找到以下行: ``` #port = 5432 # (change requires restart) ``` 将其修改为: ``` port = 2282 ``` 保存并退出配置文件。 9. 启动 PostgreSQL 服务器。可以使用以下命令: ``` sudo su - postgres /opt/postgresql-14.0/bin/pg_ctl -D /var/pgsql/data -l logfile start exit ``` 10. 测试连接。可以使用以下命令连接 PostgreSQL 服务器: ``` psql -h localhost -p 2282 -U postgres ``` 如果成功连接,则会提示输入密码,输入密码后即可进入 PostgreSQL 的命令行界面。 以上是基于完整离线包安装 PostgreSQL 14 并将端口号调整为 2282 的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值