MySQL 원격 접속에 관한 설정은 검색하면 관련 문서가 많으니 생략하겠다. 기본적으로 데이터베이스 서버를 원격에서 접속하려면 서버 측에서 허용하는 설정이 필요하다.
R command 에서
> install.package('RODBC')
install에 성공했다면 이제 해당 모듈을 불러들이고 접속을 시도하면 된다.
> library(RODBC)
> odbcConnect("<something>", uid="<database user name>", pwd="<password>");
<something> 에 들어가야 할 문자열은 DSN 이다.
DSN이란, Data Source Name 의 약자로 ODBC에서 접속할 데이타베이스 정보에 대한 별칭 같은 것 같다.
Windows 에서의 설정은 적당한 검색으로 찾아보면 나온다.
필자의 환경인 Fedora 17 에서는 unixODBC-devel을 설치하면서 설정 파일인
/etc/odbc.ini, /etc/odbcinst.ini 이 생겨있었다.
/etc/odbcinst.ini 에는
#Example driver definitions
...(생략)
[MySQL]
Description = ODBC for MySQL
...(생략)
의 내용이 있었다.
/etc/odbc.ini 는 빈 파일이었다.
빈 파일에 다음과 같은 내용을 추가했다.
<> 로 감싸진 것은 자신의 환경에 맞는 것을 써 넣으면 된다.
[<My Data Source Name>]
Description = <My Description>
Driver = MySQL
ServerName = <My Server Name or My Server IP>
Port = <My Server Port, MySQL Server default port number is 3306>
Database = <My Database Name>
자. 이제 DSN을 설정해두었으니 다시 접속을 시도해보자.
> odbcConnect("<My Data Source Name>", uid="<database user name>", pwd="<password>");
여기서 접속이 잘 되면 잘 된거고.. 필자는 다음과 같은 문제가 발생했다.
MySQL Driver인 libmyodbc5.so 파일을 찾을 수 없다는 문제였다.
그래서 이래저래 삽질한 결과
# yum install mysql-connector-odbc
위의 패키지를 설치한 뒤 커넥트 하니 잘 되었다.