我的问题是,当我用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 Off模式下它也不工作)。
使用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一起工作,我不知道我的脚本有什么问题。
我有一个mac图书空气与maverick和matlab R2013a。
如果有人知道出了什么问题,那就太好了。
发布于 2014-09-18 18:02:34
我最终找到了一个不使用数据库工具箱的解决方案:
% Add jar file to classpath (ensure it is present in your current dir)
%javaclasspath('postgresql-9.0-801.jdbc4.jar');
% Username and password you chose when installing postgres
props=java.util.Properties;
props.setProperty('user', 'username');
props.setProperty('password', 'password');
props.setProperty('ssl','true');
% Create the database connection
driver=org.postgresql.Driver;
url = 'jdbc:postgresql://databaseURL/dbname';
conn=driver.connect(url, props);但是我不能使用数据库工具箱的其他函数...
我已经用matlab的数据库功能尝试了无数种可能性,但都没有成功!
https://stackoverflow.com/questions/25580475
复制相似问题