将客户端连接到便携式 PostgreSQL 服务器

Connect clients to portable PostgreSQL server

首先:我对 SQL 的唯一体验是 SQLite,它是一个无服务器引擎。我是所有这些 client/server 故事的新手。

总结我的目标:我需要 read/write from/into 来自不同计算机的 PosgreSQL 数据库。这些计算机(都安装了 Windows 7 或 10)共享同一个网络,但我无法在它们上安装任何软件。

我的想法是下载 portable PostgreSQL 服务器并将其保存在网络共享目录中(例如 Y:\PortableProject),这样所有计算机都可以访问到 executable 文件和包含数据库的数据文件夹。假设网络 IP 是 192.170.1.200(来自 ipconfig 命令),这是我到目前为止尝试执行的步骤:

  1. 为了允许 IP 192.170.1.200 作为主机,打开 pg_hba.conf 文件并在 EOF

    中添加以下行
    host    all             all             192.170.1.200/32                 trust
    
  2. 为了给所有访问服务器的电脑权限,打开postgresql.conf更新listen_addresses*

    listen_addresses = '*'
    
  3. 在一台计算机(例如计算机 A)中打开命令提示符,然后使用以下命令从提示符启动服务器:

    "Y:\PortableProject\PostgreSQLPortable\App\PgSQL\bin\pg_ctl.exe" start -D "Y:\PortableProject\PostgreSQLPortable\Data\data"
    
  4. 在所有计算机上进行写入和读取。例如,在计算机 B 上,打开其提示命令,并使用命令从数据库 dbtest(假设它们存在)读取 table tabtest 上的所有信息:

    "Y:\PortableProject\PostgreSQLPortable\App\PgSQL\bin\psql.exe" -h 192.170.1.200 -p 5432 -U postgres -d dbtest -c "SELECT * FROM tabtest"
    
  5. 关闭电脑A的连接:

    "Y:\PortableProject\PostgreSQLPortable\App\PgSQL\bin\pg_ctl.exe" stop -D "Y:\PortableProject\PostgreSQLPortable\Data\data"
    

问题出现在第 4 步。即使我从计算机 A 运行 它,我也会收到以下错误

psql: could not connect to server: Connection refused (0x0000274D/10061)
        Is the server running on host "192.170.1.200" and accepting
        TCP/IP connections on port 5432?

我做的完全错了吗?有没有可能达到我的目标?

Is the server running on host "192.170.1.200" and accepting TCP/IP connections on port 5432?

这意味着 192.170.1.200 中的服务器是 运行,现在您是从服务器 pc 还是从另一台 pc 执行?

pg_hba.conf 是列出允许哪些其他地址/用户访问该服务器。

因此,如果您从您使用的同一台电脑访问

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5

对于外部地址,您可以使用

host    all             all             192.170.1.1/24          trust

这将允许访问具有以下 IP 地址范围的电脑。 IP Calculator

HostMin:   192.170.1.1   
HostMax:   192.170.1.254