我正在尝试通过 Tableau 和 ODBC 连接到我的 Heroku PostgreSQL 数据库,这需要通过 ODBC,因为它需要 SSL 连接。话虽这么说,我已经配置了一个
User DSN
。我遵循了此博客中的一些步骤。
brew install psqlodbc
/usr/local/etc/odbcinst.ini
文件:[PostgreSQL Unicode]
Description = PostgreSQL ODBC driver (Unicode version)
Driver = /usr/local/lib/psqlodbcw.so
odbc.ini
。nano ~/.odbc.ini
[ib3db]
Driver = PostgreSQL Unicode
Description = None
SSLMODE = verify-ca
ServerName = <host>
Database = <db_name>
Port = 5432
Username = <username>
Password = <pwd>
Pqopt = sslcert=<.crt> sslkey=<.key> sslrootcert=<.crt>
我在终端中对此进行了测试,工作正常,我能够成功连接到我的数据库。所以,配置似乎是正确的。
当我尝试通过 Tableau 连接时出现问题。选择
To a Server > ODBC > DSN
后,我选择之前创建的名为 ib3db
的 DSN,然后出现以下错误:
[iODBC][驱动程序管理器]dlopen(PostgreSQL Unicode, 0x0006): 尝试: 'PostgreSQL Unicode' (强化程序中不允许相对路径), '/System/Volumes/Preboot/Cryptexes/OSPostgreSQL Unicode' (没有这样的文件) , '/Applications/Tableau Desktop 2024.3.app/Contents/MacOS/PostgreSQL Unicode'(没有此类文件), '/Applications/Tableau Desktop 2024.3.app/Contents/MacOS/PostgreSQL Unicode'(没有此类文件)、'/Applications/Tableau Desktop 2024.3.app/Contents/MacOS/PostgreSQL Unicode'(没有此类文件)、'/Applications/画面 [iODBC][驱动程序管理器]无法加载指定的驱动程序 通用 ODBC 需要额外的配置。必须安装并配置驱动程序和 DSN(数据源名称)以匹配连接。
我是否需要重命名之前安装的驱动程序以匹配 Tableau 正在查找的路径?
如何告诉 Tableau 转到正确的路径来查找我已安装的驱动程序?
我最终使用了 JDBC 驱动程序。对于任何想知道的人,您还可以使用 JDBC 通过 SSL 进行连接。
首先您需要安装驱动程序。
然后你需要建立URL连接,如:
jdbc:postgresql://<hostname>:5432/<database_name>?ssl=true&sslmode=verify-ca&sslcert=<path_to_cert>&sslkey=<path_to_pk8>&sslrootcert=<path_to_crt>
之后,您就完成了设置,您只需要输入用户名和密码,连接就应该没有问题。
不要忘记更改密钥的权限:
chmod 0600 ...