sql-server - Postgresql的独立实例是否可能

标签 sql-server windows postgresql

我想安装 postgresql 用作 Windows 应用程序的后端。

如果系统上尚未安装 postgresql,这似乎没有问题。

如果已经安装了 postgresql,那么除非命令行参数包含现有安装的 super 密码等,否则安装将失败。 因为我可能永远不会知道任何预先存在的 postgresql 实例的 super 密码或其他帐户详细信息,而机器所有者可能也不知道,这似乎会挫败在这种情况下安装 postgresql 的任何尝试。

我相信安装完全独立的 sql server 实例是可能的,但这对 postgresql 来说可能吗?

顺便说一句: 如果命令行确实包含正确的超​​级密码,那么安装似乎只是覆盖现有安装并忽略 --prefix 等参数。 在进行第二次安装之前,我使用 init db 创建了一个新的数据库集群,但是这个新集群被忽略了?

最佳答案

通常,您可以拥有多个独立 PostgreSQL 实例。严格来说它是具有独立的数据库集群:

  • 数据目录
  • 配置(例如postgresql.confpg_hba.conf)
  • 监听TCP/UDP端口(默认5432+)
  • 所有者用户和 super 用户角色
  • 语言环境和默认编码
  • 日志文件
  • postmaster 服务器进程(在 Windows postgres.exe 上)

完美的例子是 Debian,易于使用 postgresql-common基础设施(pg_ctlcluster、pg_lsclusters、pg_createcluster、pg_dropcluster,包括 SSL、日志轮换等)。

编辑:

我发现在 Windows 下使用 EnterpriseDB's installer 安装相同版本的 PostgreSQL 的第二个、第三个等实例相当容易。 , 不需要使用 initdbpg_ctl (假设 64 位安装,可能需要使用 Program Files (x86) 进行 32 位安装):

  1. 以管理员权限打开cmd(以管理员身份运行)
  2. 执行:cd "C:\Program Files\PostgreSQL\9.0\installer\server"
  3. 创建新的数据库集群(每一步按 Enter):initcluster.vbs postgres postgres 12345 "C:\Program Files\PostgreSQL\9.0""C:\Program Files\PostgreSQL\9.0\data2"5433 DEFAULT
  4. 注册为 Windows 服务:startupcfg.vbs 9.0 postgres 12345 "C:\Program Files\PostgreSQL\9.0""C:\Program Files\PostgreSQL\9.0\data2"postgresql-x64-9.0-2
  5. 使用 services.msc 运行新创建的服务 postgresql-x64-9.0-2 并且您有第二个服务器

12345 更改为您在 PostgreSQL 安装期间指定的密码。您不必使用 data2 目录,使用您喜欢的任何内容(但当然不是现有的 data 目录)。

关于sql-server - Postgresql的独立实例是否可能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6241793/

相关文章:

.net - 通过ClickOnce升级SQL实例

SQL Server 整数与十进制 SUM

postgresql - 如何将 postgresql any 与 jsonb 数据一起使用

mysql - 具有连接和多个分组依据的 SQL 查询

python - 使用 SQLAlchemy 和 pymssql 进行 Windows 身份验证

sql - 如何通过查询获取SQL表外键类型

备用 Windows Safari 字体的 css 代码

c# - 如何以编程方式区分 XP 64 位和 Server 2003 64 位之间的区别

c - 阻止文件创建

postgresql - docker容器未启动时如何恢复docker中的postgres数据库?