使用RMySQL连接到本地MySQL服务器

时间:2014-02-20 23:59:35

标签: mysql r rmysql

我已成功使用以下R脚本连接到本地MySQL服务器:

library(RMySQL)

drv <- dbDriver("MySQL")
con <- dbConnect(drv, user="root", pass="myrootpass")
rs <- dbSendQuery(con, statement = "SHOW DATABASES;")
fetch(rs)

但是,我不希望我的密码在脚本中,因为它将保存在文件中!我正在使用Ubuntu 13.10,MySQL 5.5.35,MySQL Workbench 6.0和R 3.0.1。

在工作中,我使用Windows,并且我能够连接到我无法使用以下行访问的SQL Server:

library(RODBC)
dbhandle<-odbcDriverConnect('driver={SQL Server};server=SomeServer;database=SomeDatabase;trusted_connection=true')

在这种情况下,似乎我作为有权访问服务器的员工登录就足够了。

我想完成与此类似的操作 - 如何使用我的Ubuntu计算机连接到本地MySQL服务器?

2 个答案:

答案 0 :(得分:0)

使用您的用户,密码等设置选项文件,如here所述。

答案 1 :(得分:0)

首先,创建以下.csv并将其命名为&#34; database_credentials.csv&#34;

user,password,dbname,host
your_user_name_here,your_password_here,your_database_address_aka_database_name_here,your_hostname_here

如果这是本地连接,则在上面.csv文件的主机字段中输入&#34; localhost&#34;

然后这样做

# R Script for
# CONNECTING TO DATABASE
  library(RMySQL)
  dbCredentialsFile <- read.csv("database_credentials.csv", stringsAsFactors = FALSE, header = TRUE)
  con <- dbConnect(MySQL(),
  user = dbCredentialsFile$user[1],
  password = dbCredentialsFile$password[1],
  host = dbCredentialsFile$host[1],
  dbname = dbCredentialsFile$dbname[1])
  rm(dbCredentialsFile)
  gc()

# FUNCTION FOR QUERYING DATABASE
  query <- function(...) dbGetQuery(con, ...)

# EXAMPLE FOR QUERYING DATABASE
  testDF <- query("SELECT * FROM name_of_table_in_database_to_retrive")