[R] connecting RMySQL to and external server

Prof Brian Ripley ripley at stats.ox.ac.uk
Sat Dec 15 17:46:01 CET 2007


On Sat, 15 Dec 2007, Adrian Dusa wrote:

>
> Indeed, I noticed the "host" argument but the server demands an username and a
> password for the machine first,

But you said 'connect to', not 'log in to', so how were we to know that?

> and only after that for the MySQL server.
> Those were the arguments I was looking for.
> I will study the RODBC package then, if it solves the problem.

I am afraid I don't understand your setup. MySQL works by listening on 
port 3306: user accounts don't come into that.  With our bastion servers 
all such ports are blocked and can only be accessed via tunnels 
(implemented by stunnel).  I think you need to discuss this with your 
sysadmins: if it works under mysql or for ODBC (isql) it will work with 
the corresponding R packages.

>
> Thank you very much,
> Adrian
>
>
> On Saturday 15 December 2007, Prof Brian Ripley wrote:
>> It is trivial with RODBC (I know that is not what you asked, but it is the
>> solution we found first).
>>
>>
>> For RMySQL, note first that the MySQL configuration file is consulted, so
>> the default host is specified in the client section, which is like
>>
>> [client]
>>
>> port=3306
>>
>> [mysql]
>>
>> default-character-set=latin1
>>
>> Add host=foo under [client] to change the default host.
>>
>> And ?dbConnect mentions a 'host' argument under '...'.  That seems to work
>> for me (provided of course the server allows connections from other
>> machines): on my home network from Windows laptop to Linux server
>>
>>> library(RMySQL)
>>
>> Loading required package: DBI
>>
>>> drv <- dbDriver("MySQL")
>>> con <- dbConnect(drv, user="ripley", host="auk", dbname="ripley")
>>
>> This mixture of using the *local* configuration file overridden by
>> arguments is a bit dangerous: RMySQL seems not really designed for
>> client-server operation and there are some things that definitely do not
>> work.  (As I recall, that included dbWrite as that imports a file which is
>> on the local machine.)
>>
>> On Fri, 14 Dec 2007, Adrian Dusa wrote:
>>> Dear list,
>>>
>>> I learned how to connect R to a local MySQL server, using:
>>> drv <- dbDriver("MySQL")
>>> con <- dbConnect(drv, user="root", password="mypass", dbname="mydb")
>>>
>>> Is it possible to connect R in this way to an external server (on a
>>> different machine, with a different IP)?
>>>
>>> I read the documentation on ?dbConnect (and everything I could find on
>>> the internet), but I failed to find some other relevant arguments. For
>>> example, one needs to first connect to the external machine and only
>>> after that to the MySQL server on that machine. Is this possible from
>>> within R?
>>>
>>> Thank you in advance,
>>> Adrian
>
>
>
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-help mailing list