您似乎误认为 MusicBrainz-Server 只是数据库。在端口 5000 上运行的是 Web 服务器。您可以http://10.16.65.250:5000
在浏览器中访问。
Postgres 也在运行,但会监听localhost:5432
. 这有效:
import psycopg2
conn = psycopg2.connect(database="musicbrainz_db",
user="musicbrainz", password="musicbrainz",
port="5432", host="localhost")
print("Connection established")
为了使 postgres 侦听的不仅仅是 localhost,您需要更改listen_addresses
并/etc/postgresql/9.1/main/postgres.conf
为您的(客户端)主机或网络在/etc/postgresql/9.1/main/pg_hba.conf
.
我的虚拟机在 192.168.1.0/24 网络中运行,所以我listen_addresses='*'
在 postgres.conf 和 pg_hab.conf 中设置:
host all all 192.168.1.0/24 trust
我现在可以从本地网络连接到 VM 中的数据库。
根据您的实际需要,您可能不想通过 postgres 连接到 MusicBrainz 服务器。您可以在 VM 中访问MusicBrainz Web 服务。示例:
http://10.16.65.250:5000/ws/2/artist/c5c2ea1c-4bde-4f4d-bd0b-47b200bf99d6
。在这种情况下,您可能对处理数据的库感兴趣:
python-musicbrainzngs。
编辑:您需要设置musicbrainzngs.set_hostname("10.16.65.250:5000")
musicbrainzngs 以连接到本地 VM。