Confirming MySQL Alive
? Sat, 7 Oct 2023 11:09:25 -0400 "Stephen H. Dawson, DSL via R-help" <r-help at 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