MariaDB {RMariaDB} | R Documentation |
Connect/disconnect to a MariaDB DBMS
Description
These methods are straight-forward implementations of the corresponding generic functions.
Usage
MariaDB()
## S4 method for signature 'MariaDBDriver'
dbConnect(
drv,
dbname = NULL,
username = NULL,
password = NULL,
host = NULL,
unix.socket = NULL,
port = 0,
client.flag = 0,
group = "rs-dbi",
default.file = NULL,
ssl.key = NULL,
ssl.cert = NULL,
ssl.ca = NULL,
ssl.capath = NULL,
ssl.cipher = NULL,
...,
groups = NULL,
load_data_local_infile = FALSE,
bigint = c("integer64", "integer", "numeric", "character"),
timeout = 10,
timezone = "+00:00",
timezone_out = NULL,
reconnect = FALSE,
mysql = NULL
)
Arguments
drv |
an object of class MariaDBDriver or MariaDBConnection. |
dbname |
string with the database name or NULL. If not NULL, the connection sets the default database to this value. |
username , password |
Username and password. If username omitted, defaults to the current user. If password is omitted, only users without a password can log in. |
host |
string identifying the host machine running the MariaDB server or
NULL. If NULL or the string |
unix.socket |
(optional) string of the unix socket or named pipe. |
port |
(optional) integer of the TCP/IP default port. |
client.flag |
(optional) integer setting various MariaDB client flags, see Client-flags for details. |
group |
string identifying a section in the |
default.file |
string of the filename with MariaDB client options,
only relevant if |
ssl.key |
(optional) string of the filename of the SSL key file to use.
Expanded with |
ssl.cert |
(optional) string of the filename of the SSL certificate to
use. Expanded with |
ssl.ca |
(optional) string of the filename of an SSL certificate
authority file to use. Expanded with |
ssl.capath |
(optional) string of the path to a directory containing
the trusted SSL CA certificates in PEM format. Expanded with
|
ssl.cipher |
(optional) string list of permitted ciphers to use for SSL encryption. |
... |
Unused, needed for compatibility with generic. |
groups |
deprecated, use |
load_data_local_infile |
Set to |
bigint |
The R type that 64-bit integer types should be mapped to, default is bit64::integer64, which allows the full range of 64 bit integers. |
timeout |
Connection timeout, in seconds. Use |
timezone |
(optional) time zone for the connection,
the default corresponds to UTC.
Set this argument if your server or database is configured with a different
time zone than UTC.
Set to |
timezone_out |
The time zone returned to R.
The default is to use the value of the |
reconnect |
(experimental) Set to |
mysql |
Set to |
Time zones
MySQL and MariaDB support named time zones, they must be installed on the server. See https://dev.mysql.com/doc/mysql-g11n-excerpt/8.0/en/time-zone-support.html for more details. Without installation, time zone support is restricted to UTC offset, which cannot take into account DST offsets.
Secure passwords
Avoid storing passwords hard-coded in the code, use e.g. the keyring package to store and retrieve passwords in a secure way.
The MySQL client library (but not MariaDB) supports a .mylogin.cnf
file
that can be passed in the default.file
argument.
This file can contain an obfuscated password, which is not a secure way
to store passwords but may be acceptable if the user is aware of the
restrictions.
The availability of this feature depends on the client library used
for compiling the RMariaDB package.
Windows and macOS binaries on CRAN are compiled against the MariaDB Connector/C
client library which do not support this feature.
References
Configuration files: https://mariadb.com/kb/en/library/configuring-mariadb-with-mycnf/
Examples
if (mariadbHasDefault()) {
# connect to a database and load some data
con <- dbConnect(RMariaDB::MariaDB(), dbname = "test")
dbWriteTable(con, "USArrests", datasets::USArrests, temporary = TRUE)
# query
rs <- dbSendQuery(con, "SELECT * FROM USArrests")
d1 <- dbFetch(rs, n = 10) # extract data in chunks of 10 rows
dbHasCompleted(rs)
d2 <- dbFetch(rs, n = -1) # extract all remaining data
dbHasCompleted(rs)
dbClearResult(rs)
dbListTables(con)
# clean up
dbDisconnect(con)
}
## Not run:
# Connect to a MariaDB database running locally
con <- dbConnect(RMariaDB::MariaDB(), dbname = "mydb")
# Connect to a remote database with username and password
con <- dbConnect(RMariaDB::MariaDB(),
host = "mydb.mycompany.com",
user = "abc", password = "def"
)
# But instead of supplying the username and password in code, it's usually
# better to set up a group in your .my.cnf (usually located in your home
# directory). Then it's less likely you'll inadvertently share them.
con <- dbConnect(RMariaDB::MariaDB(), group = "test")
# To connect to a remote database and require the use of SSL
(and an example of using environment variables for your sensitive info)
con <- dbConnect(RMariaDB::MariaDB(),
dbname = Sys.getenv('DB_NAME'),
host = Sys.getenv('DB_HOST'),
user = Sys.getenv('DB_USER'),
password = Sys.getenv('DB_PASSWORD'),
client.flag = CLIENT_SSL
)
# Always cleanup by disconnecting the database
dbDisconnect(con)
## End(Not run)
# All examples use the rs-dbi group by default.
if (mariadbHasDefault()) {
con <- dbConnect(RMariaDB::MariaDB(), dbname = "test")
con
dbDisconnect(con)
}