本地网络上托管的 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 地址
第一步是确定你的网络是如何设置的。
- Windows
- macOS
-
点击开始
-
输入 cmd 并按回车
-
当命令提示符出现后,输入 ipconfig
- 打开 实用工具 文件夹中的 终端 应用程序
- 当终端出现时,输入 ifconfig
现在你将能够看到电脑上的所有网络连接,我们需要的是这些连接的 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,然后再重新启用锁图标。