即使 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() 中列出,也找不到驱动程序