即使 play.ap.db.DB 可以为同一个驱动程序执行此操作,也无法使用驱动程序连接到 Redshift 数据库

Posted

技术标签:

【中文标题】即使 play.ap.db.DB 可以为同一个驱动程序执行此操作,也无法使用驱动程序连接到 Redshift 数据库【英文标题】:Cannot connect to Redshift database with a driver even though play.ap.db.DB can do this for the same driver 【发布时间】:2015-11-25 10:06:19 【问题描述】:

我正在尝试连接到 Redshift 服务器并运行一些 sql 命令。这是我写的代码:

Class.forName("org.postgresql.Driver")
val url: String = s"jdbc:postgres://$user:$password@$host:$port/$database"
val connection: Connection = DriverManager.getConnection(url, user, password)
val statement = connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)
val setSearchPathQuery: String = s"set search_path to '$schema';"
statement.execute(setSearchPathQuery)

但我收到以下错误:

java.sql.SQLException: 找不到适合 jdbc:postgres://user:password@host:port/database 的驱动程序

但是当我使用具有相同配置的 play framework 的默认数据库库时,我能够成功连接到数据库。下面是默认数据库的配置:

db.default.driver=org.postgresql.Driver
db.default.url="postgres://username:password@hostname:port/database"
db.default.host="hostname"
db.default.port="port"
db.default.dbname = "database"
db.default.user = "username"
db.default.password = "password"

【问题讨论】:

【参考方案1】:

问题出在网址上。 url 的正确格式是:

jdbc:postgresql://hostname:port/database

【讨论】:

以上是关于即使 play.ap.db.DB 可以为同一个驱动程序执行此操作,也无法使用驱动程序连接到 Redshift 数据库的主要内容,如果未能解决你的问题,请参考以下文章

即使它在 pyodbc.dataSources() 中列出,也找不到驱动程序

PyODBC:即使存在也无法打开驱动程序

即使在卸载安装它的驱动程序后,协议是不是继续在内存中并可供其他驱动程序使用?

即使通过 Maven 添加也找不到 JDBC 驱动程序

misc子系统

即使设置了驱动程序的路径,线程“main”java.lang.IllegalStateException 中的异常