[R] Confirming MySQL Alive

Ivan Krylov kry|ov@r00t @end|ng |rom gm@||@com
Sat Oct 7 18:00:20 CEST 2023


В Sat, 7 Oct 2023 11:09:25 -0400
"Stephen H. Dawson, DSL via R-help" <r-help using r-project.org> пишет:

> sudo: a terminal is required to read the password; either use the -S 
> option to read from standard input or configure an askpass helper
> sudo: a password is required

sudo is giving you a hint here. Normally it requires an interactive
terminal (that it can set up to disable character echo), but if you
give it the -S flag, it will be happy to read the password from stdin.

> What are some of the best practices to confirm a box I am hitting for
> data with R , either local or across the network, has MySQL up and
> running?

Wrap (a copy of) the connection code in try() or tryCatch() and see if
it fails.

If the MySQL DBI driver doesn't have a timeout option and can hang
indefinitely, you can try R.utils::withTimeout (implemented using
setTimeLimit(), so requires the DBI code to be interruptible / check
for interrupts). Alternatively, on a GNU/Linux box there's the timeout
utility (see `man 1 timeout`) that you could use together with the
`mysql` command-line client to try to establish the connection. Failing
everything else, there's socketConnection() to check whether anything
is listening on a given address and TCP port (but not for a UNIX domain
socket you would normally use to connect to the local server).

Beware of the time-of-check to time-of-use problem: a particularly
unlucky program could see a working MySQL server and then have it fail
later when it actually tries to work with it.

-- 
Best regards,
Ivan



More information about the R-help mailing list