我的问题是,当我使用matlab连接到远程psql数据库时,会出现以下错误:
FATAL: password authentication failed for user "[username]"
但是密码是正确的。我已经与数据库管理员确认过了。
我可以通过 PSQL Shell 连接到数据库,这个是可以正常工作的。只有在用 matlab 连接时会出问题。我必须启用 SSL 连接,所以我使用以下代码行:
conn = database('dbname','username','password','org.postgresql.Driver',
'jdbc:postgresql:dm-userdb.geomar.de:users:ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory&');
遵循matlab文档。
数据库管理员认为问题出在我在matlab中使用的语法上,因为在shell中连接是有效的,但他不熟悉matlab,所以无法帮助我。
此外,当我在我的电脑上创建本地数据库时,我可以用matlab连接它。只有使用matlab连接到远程数据库中的SSL模式时才会出现问题(在SSL关闭时也不起作用)。
使用R或Python连接到此数据库是有效的。对于R来说,代码如下:
install.packages("rpostgres")
library(RPostgreSQL)
drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, host = "dm-userdb.geomar.de", dbname="users", tty = "NULL", user="****", password = "******", port = "5432")
由于我们将有使用不同软件的用户使用此数据库,因此我们还必须使其与Matlab配合使用,但我不知道我的脚本出了什么问题。
我有一台带有Maverick和Matlab R2013a的MacBook Air。
如果有人知道出了什么问题,那就太好了。
pg_hba.conf
文件?该文件定义了允许连接的主机和连接类型列表。详情请参考:http://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html - Ihor Romanchenkoorg.postgresql.ssl.NonValidatingFactory
不是一个好主意。相反,您可能想要将服务器证书导入到您的信任存储中。 - Bruno