2014-02-20 166 views
1

我能夠成功地與下列R-腳本連接到本地MySQL服務器:連接到本地MySQL服務器RMySQL

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服務器?

+0

它也許危險用於數據處理工作,MySQL的「root」用戶。無論如何,MySQL有一個細粒度的訪問控制。您可以添加一個沒有密碼的用戶,只允許從本地主機連接。 – dasup

回答

0

如您所討論的here所述,用您的用戶,密碼等設置選項文件。

0

首先,創建以下的.csv並將其命名爲「database_credentials.csv」

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

如果這是.csv文件的本地連接,然後在主機字段上方進入「本地主機」

那麼做到這一點

# 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") 
相關問題