2016-07-08 4 views
1

Mac OS X을 사용하는 RStudio에서 초보자입니다.RStudio에서 RMySQL을 사용하는 SSH 터널

필자는 sequel Pro를 사용하여 DB를 이와 같이 보았습니다.

enter image description here

I가 RStudio와 RMySQL 및 (코드 이하)로 dbConnect DBI를 사용한다.

library(DBI) 
library(RMySQL) 
con <- dbConnect(RMySQL::MySQL(), 
       username = "username", 
       password = "password", 
       host = "hostname-xxx.ap-northeast-1.rds.amazonaws.com", 
       port = 3306, 
       dbname = "dbname" 
) 

하지만 아래 오류가 있습니다.

Error in .local(drv, ...) 
    Failed to connect to database: Error: Access denied for user 'username'@'yyyyyyyyyyymarunouchi.tokyo.ocn.ne.jp' (using password: YES) 

이렇게 터미널을 사용하여 ssh 터널을 만듭니다.

ssh -f [email protected] -i ~/.ssh/ssh_key -L 3306:hostname-xxx.ap-northeast-1.rds.amazonaws.com:3306 -N 

성공적으로 기록됩니다.

그 다음에는 확인을 위해 아래의 명령 (터미널에서)을 실행했지만 올바른 암호를 입력 한 후에는 실패했습니다.

ERROR 1044 (42000): Access denied for user 'username'@'localhost' to database 'dbname' 

오류 코드

mysql -h 127.0.0.1 -p -u username dbname 

을 (같은 이름을 가진 다른 기계 성공적으로 ... 그 이유를 몰랐다. 로그인) 및 dbConnect (RStudio와 RMySQL)는 동일 보여주고있다 위의 오류.

누구나 같은 상황입니까? 어떻게해야할지 말해줘.

감사합니다.

답변

0

이것은 데이터베이스 자격 증명의 문제입니다. 로그인하는 DB에 액세스 할 권한이있는 사용자를 DBMS에 설정 한 다음 해당 계정 + 비밀번호를 사용하여 로그인하십시오. 이것은 서버에 로그인 할 때 사용하는 계정과 다를 수 있습니다.

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; 
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost'; 
FLUSH PRIVILEGES; 

이 한 번에 ALL PRIVILEGES 부여 각 권한을 부여하는 대신 당신에게 어떤 문제를 제공합니다. 드문 일이지만 하이브 (Hive)와 같은 다른 DB의 경우 특히 그렇습니다.

+0

데이터베이스 자격 증명 문제 인 경우에 대한 "사용자 이름"계정 설정 DB가 틀렸어 야한다. 그래서 'mysql -h 127.0 ...'명령이 모든 터미널에서 성공적으로 실행되지 않거나 모두 실패 할까? '''같은 사용자 이름을 가진 다른 컴퓨터가 성공적으로 로그인합니다. 나는 이유를 알지 못했다 ..''' –

+0

'sql -h 127.0.0.1 -p password -u username dbname'위의 오류가 사라지고 mysql 명령이 터미널에서 성공적으로 실행됩니다. 그러나 RStudio의 dbConnect는 오류가 발생합니다 :'.local (drv, ...)의 오류 : 데이터베이스에 연결하지 못했습니다 : 오류 : 'hostname-xxx.ap-northeast-1.rds.'의 MySQL 서버에 연결할 수 없습니다. amazonaws.com '(60)' –