I\'m trying to connect to a Microsoft SQL Server from R on Mac/Linux, and I have problems with RJDBC. When I\'ve downloaded both Microsoft\'s driver and JTDS, but none of th
The following code achieves your goal of connecting to R from Mac OS x. Download the Microsoft JDBC driver from Microsoft here
Link to Gist / Code in Github
# install.packages("RJDBC",dep=TRUE)
library(RJDBC)
drv <- JDBC("com.microsoft.sqlserver.jdbc.SQLServerDriver" , "/Users/johndacosta/Downloads/sqljdbc_4.0/enu/sqljdbc4.jar" ,identifier.quote="`")
conn <- dbConnect(drv, "jdbc:sqlserver://192.172.1.210:55158;databaseName=master", "sa", "password")
d <- dbGetQuery(conn, "select * from sys.databases where database_id <= 4 ")
summary(d)
I had this problem with jtds-1.3.1 on Linux. The problem disappeared when I tried switching to jtds-1.2.7. It appears there is something in jtds-1.3.* which makes it incompatible with RJDBC.
library(RJDBC)
cp <- c
(
"<usr path>/jdbc/mdb/log4j.jar",
"<usr path>/jdbc/mdb/commons_lang.jar",
"<usr path>/jdbc/mdb/commons_logging.jar"
)
.jinit(classpath=cp)
drv <- JDBC("com.microsoft.sqlserver.jdbc.SQLServerDriver",
"/Users/victor/Downloads/sqljdbc_3.0/enu/sqljdbc4.jar")
Same error happened to me earlier when I was trying to use RJDBC to connect to Cassandra, it was solved by putting the Cassandra JDBC dependencies in your JAVA ClassPath.
See this answer:
I've been struggling for a while on this. Here's what I found.
sqljdbc4.jar
. Use:
drv <- JDBC("com.microsoft.sqlserver.jdbc.SQLServerDriver", "<wherever sqljdbc4.jar is>")
This should work.
If i'm right, the idea is that for the PATH
variable in drv
function, one will need to specify the PATH where the JDBC driver is located (so if none, then downloaded it FIRST). Otherwise, one shall receive the common class not find
error.
I had the exact same problem. This is a jTDS
solution:
~/Downloads/jtds-1.2.8-dist/jtds-1.2.8.jar
. Note: Other versions may not work!R
, set up driver: drv <- JDBC("net.sourceforge.jtds.jdbc.Driver", "~/Downloads/jtds-1.2.8-dist/jtds-1.2.8.jar")
.conn <- dbConnect(drv, "jdbc:jtds:sqlserver://servername:port;DatabaseName=databasename", domain="windows domain", user="user", password="pwd")
.Here the field domain
was messing things up. You can't put domain\username
as your user
. You have to define them separately according to the jTDS driver implementation.