我一直在尝试让 FreeBSD 机器与网络 postgreSQL 数据库进行通信。我假设机器安装了 kerberos,因为我用它来登录,并且我被告知 FreeBSD 已内置它(?)。我尝试使用psql -h pgteach
(服务器的别名,工作正常,因为我可以 ping 机器)连接到我的远程数据库。我收到消息
psql: Kerberos 5 authentication not supported
谷歌搜索这个问题似乎建议我应该安装 Kerberos 的端口之一。 postgresql 客户端(版本 9.1)是否特别需要 MIT 或 Heimdal kerberos,或者我可以添加一些配置标志来指向默认的 kerberos 库吗?
pg_config
返回以下几行(我认为是为了相关性而编辑的)。如果需要更多信息,请告诉我。
CONFIGURE = '--with-libraries=/usr/local/lib' '--with-includes=/usr/local/include' '--enable-thread-safety' '--with-openssl' '--with-libxml' '--enable-nls' '--with-gssapi' '--prefix=/usr/local' '--mandir=/usr/local/man' '--infodir=/usr/local/info/' '--build=amd64-portbld-freebsd8.2' 'build_alias=amd64-portbld-freebsd8.2' 'CC=cc' 'CFLAGS=-O2 -pipe -fno-strict-aliasing' 'LDFLAGS= -L/usr/local/lib -rpath=/usr/lib:/usr/local/lib -lgssapi' 'CPPFLAGS=' 'CPP=cpp' 'LDFLAGS_SL=-lgssapi'
LDFLAGS = -L/usr/local/lib -rpath=/usr/lib:/usr/local/lib -lgssapi -L/usr/local/lib -L/usr/local/lib -L/usr/local/lib -Wl,--as-needed -Wl,-R'/usr/local/lib'
<snip>
LDFLAGS_EX =
LDFLAGS_SL = -lgssapi
LIBS = -lpgport -lintl -lxml2 -lssl -lcrypto -lz -lreadline -lcrypt -lm
编辑:
我有使用 Kerberos,因为它是大学管理的服务器。此后我尝试检查 中的“使用 Heimdall kerberos” make config
,但尝试这样做sudo make clean install
后抱怨找不到krb5_sendauth
。我知道 kerberos 已安装,因为 kinit 和 klist 都工作正常。
答案1
我通过确保 GSSAPI 和 Heimdall Kerberos 支持都已签入来解决这个问题make config
。然后编译就可以了。