connecting [logging] RMySQL to an external server - SOLVED
On Saturday 15 December 2007, Gabor Grothendieck wrote:
Use ssh forwarding to forward local port 3307 to remote port 3306 specifying the remote account and password. Then if you use local port 3306 you can access your local version of MySQL and if you use port 3307 you can access the remote version. There is some info on the MySQL site. First test it out by running the mysql command line program accessing the remote data base via port 3307 and once that works you know its ok and you can try RMySQL or RODBC packages.
For those interested in using R with a remote MySQL database, here's the most
simple and straightforward solution (thanks to Gabor):
On the console, forward local port 3307 to remote port 3306
ssh -L 3307:xxx.xxx.xxx.xxx:3306 myuser at xxx.xxx.xxx.xxx
(where xxx.xxx.xxx.xxx is the IP of the remote server and myuser is the login
name). After entering the password, keep that console open.
In R:
library(RMySQL)
drv <- dbDriver("MySQL")
dbConnect(drv, user="mysqluser", password="mysqlpassword",
dbname="anydatabase", host="127.0.0.1", port="3307")
(where mysqluser and mysqlpassword are the remote machine's MySQL username and
password).
Another possible solution is suggested by Prof. Ripley, using stunnel to
create a secure tunnel between the local and the remote machines, but I
haven't explored that in detail.
Best wishes,
Adrian
Adrian Dusa
Romanian Social Data Archive
1, Schitu Magureanu Bd
050025 Bucharest sector 5
Romania
Tel./Fax: +40 21 3126618 \
+40 21 3120210 / int.101