跳到主要内容

本地网络上托管的 PostgreSQL Server

概述

在某些情况下,你可能会发现将 PostgreSQL Server 安装在本机并不是最优选择。PokerTracker 允许将 PostgreSQL server 放在本地网络中的其他任何一台电脑上,例如:

  • 专用的 PostgreSQL 服务器
  • 两台桌面电脑共享同一个 PostgreSQL 数据库
  • PostgreSQL server 位于宿主操作系统上,而扑克在虚拟机(VM)中运行,例如在 macOS 工作站上运行 Windows VM。

请注意,此方法并未获得 PokerTracker 官方支持;由于不建议这样做,因此我们无法保证在出现问题时提供帮助。由于 PokerTracker 4 并未为远程数据库访问而开发,你会发现某些功能在 PostgreSQL 数据库不位于同一台电脑上时将无法使用,例如备份、还原、数据库调整和数据库维护。

连接 PostgreSQL Server

你的 PostgreSQL Server 必须配置为允许数据在本地网络中的其他服务器/电脑之间发送和接收。要从网络中另一台电脑连接到该服务器,你需要知道服务器地址。请按照 本地网络的 IP 地址 中的说明,确定托管 PostgreSQL server 的电脑地址。

配置 PostgreSQL Server

本地网络的 IP 地址

第一步是确定你的网络是如何设置的。

  1. 点击开始

  2. 输入 cmd 并按回车

  3. 当命令提示符出现后,输入 ipconfig

现在你将能够看到电脑上的所有网络连接,我们需要的是这些连接的 IP 地址。查找任何以 192.168.x.x 开头的 IP 地址。(注意:我们最关心的是 IP 地址中的第 3 个数字。)

编辑 pg_hba.conf 配置文件

现在我们将更新你的 PostgreSQL 配置文件,让服务器知道同一子网(本地网络)中的电脑可以访问 SQL server。

通过点击 Start -> Programs -> PostgreSQL-> Configuration Files -> pg_hba.conf,或者在 C:\Program Files\PostgreSQL\9.0\data 文件夹中,用记事本打开 pg_hba.conf 配置文件。(请将 9.0 替换为你所安装的 PostgreSQL 版本。)

滚动到文件底部,我们要找的是类似以下内容的文本:

# TYPE DATABASE USER CIDR-ADDRESS METHOD

# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
#host all all ::1/128 md5

如果你电脑 IP 地址中的第三位数字是 0(零),则在文档底部、上方文本下面添加这一行:

host all all 192.168.0.0/24 md5

如果你电脑 IP 地址中的第三位数字是 1(一),则在文档底部、上方文本下面添加这一行:

host all all 192.168.1.0/24 md5

保存文本文件以继续。

编辑 postgresql.conf 配置文件

现在我们将更新另一个 PostgreSQL 配置文件,让服务器知道已批准子网(本地网络)中的任何 IP 地址都可以访问 SQL server。

通过点击 Start-> Programs-> PostgreSQL-> Configuration Files -> postgresql.conf,或者在 C:\Program Files\PostgreSQL\9.0\data 文件夹中,用记事本打开 postgresql.conf 配置文件。(请将 9.0 替换为你所安装的 PostgreSQL 版本。)

滚动到文件底部并添加以下文本行:

listen_addresses = '*'

这行文本告诉你的 PostgreSQL server 监听电脑拥有的所有地址,而不仅仅是 localhost(仅可从本机访问)。

macOS 用户特别说明

要在 Mac 上进行下面列出的更改,你需要更改 /Library/PostgreSQL/9.3/data 文件夹的权限。这个 data 文件夹也可能显示为 9.0 或 9.6,这代表你电脑上安装的 PostgreSQL 版本。

右键点击 data 文件夹并选择 Get Info。在信息窗口底部点击锁图标以允许更改,然后将 everyone 的权限改为 Read & Write。现在你可以对下面说明的配置文件进行必要的更改,这些文件位于“data”文件夹中。

编辑完配置文件后,你必须everyone 的权限改回 No Access,然后再重新启用锁图标。