这是我第一次连接到Vertica.我已经使用RODBC库成功连接到MySQL数据库.
我在vertica中安装了数据库,并从https://my.vertica.com/download-community-edition/安装了Windows 64位ODBC驱动程序
当我尝试使用R连接到vertica时,我收到以下错误:
channel = odbcDriverConnect(connection = "Server=myserver.edu;Database=mydb;User=mydb;Password=password")
Warning messages:
1: In odbcDriverConnect(connection = "Server=myserver.edu;Database=mydb;User=mydb;Password=password") :
[RODBC] ERROR: state IM002, code 0, message [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
2: In odbcDriverConnect(connection = "Server=myserver.edu;Database=mydb;User=mydb;Password=password") :
ODBC connection failed
Run Code Online (Sandbox Code Playgroud)
谁能告诉我如何解决这个问题?或者有没有其他方法使用R连接到vertica?
通常我使用JDBC/ODBC驱动程序使用R连接到数据库.典型的代码看起来像
library(RJDBC)
vDriver = JDBC(driverClass="com.vertica.jdbc.Driver", classPath="/home/Drivers/vertica-jdbc-7.0.1-0.jar")
vertica = dbConnect(vDriver, "jdbc:vertica://servername:5433/db", "username", "password")
Run Code Online (Sandbox Code Playgroud)
我希望其他人使用我的凭据访问数据库,但我想保护我的用户名和密码.因此,我计划将上述脚本保存为"Connections.r"文件,并要求用户获取此文件.
source("/opt/mount1/Connections.r")
Run Code Online (Sandbox Code Playgroud)
如果我只给予Connections.r执行权限,则其他人无法获取该文件
chmod 710 Connections.r
Run Code Online (Sandbox Code Playgroud)
只有当我提供读取和执行权限时,R才允许用户使用它.如果我给予读取权限,我的凭证将被公开.反正我们可以通过保护用户凭据来解决这个问题吗?