R/connect.R
, R/dbConnect_MariaDBDriver.R
dbConnect-MariaDBDriver-method.Rd
These methods are straight-forward implementations of the corresponding generic functions.
MariaDB()
# S4 method for MariaDBDriver
dbConnect(
drv,
dbname = NULL,
username = NULL,
password = NULL,
host = NULL,
unix.socket = NULL,
port = 0,
client.flag = 0,
groups = "rs-dbi",
default.file = NULL,
ssl.key = NULL,
ssl.cert = NULL,
ssl.ca = NULL,
ssl.capath = NULL,
ssl.cipher = NULL,
...,
load_data_local_infile = FALSE,
bigint = c("integer64", "integer", "numeric", "character"),
timeout = 10,
timezone = "+00:00",
timezone_out = NULL,
reconnect = FALSE
)
an object of class MariaDBDriver or MariaDBConnection.
string with the database name or NULL. If not NULL, the connection sets the default database to this value.
Username and password. If username omitted, defaults to the current user. If password is omitted, only users without a password can log in.
string identifying the host machine running the MariaDB server or
NULL. If NULL or the string "localhost"
, a connection to the local
host is assumed.
(optional) string of the unix socket or named pipe.
(optional) integer of the TCP/IP default port.
(optional) integer setting various MariaDB client flags, see Client-flags for details.
string identifying a section in the default.file
to use
for setting authentication parameters (see MariaDB()
).
string of the filename with MariaDB client options,
only relevant if groups
is given. The default value depends on the
operating system (see references), on Linux and OS X the files
~/.my.cnf
and ~/.mylogin.cnf
are used. Expanded with normalizePath()
.
(optional) string of the filename of the SSL key file to use.
Expanded with normalizePath()
.
(optional) string of the filename of the SSL certificate to
use. Expanded with normalizePath()
.
(optional) string of the filename of an SSL certificate
authority file to use. Expanded with normalizePath()
.
(optional) string of the path to a directory containing
the trusted SSL CA certificates in PEM format. Expanded with
normalizePath()
.
(optional) string list of permitted ciphers to use for SSL encryption.
Unused, needed for compatibility with generic.
Set to TRUE
to use LOAD DATA LOCAL INFILE
in dbWriteTable()
and dbAppendTable()
by default.
This capability is disabled by default on the server side
for recent versions of MySQL Server.
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.
Connection timeout, in seconds. Use Inf
or a negative value
for no timeout.
(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 NULL
to automatically determine the server time zone.
The time zone returned to R.
The default is to use the value of the timezone
argument,
"+00:00"
is converted to "UTC"
If you want to display datetime values in the local timezone,
set to Sys.timezone()
or ""
.
This setting does not change the time values returned, only their display.
(experimental) Set to TRUE
to use MYSQL_OPT_RECONNECT
to enable
automatic reconnection. This is experimental and could be dangerous if the connection
is lost in the middle of a transaction.
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.
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.
Configuration files: https://mariadb.com/kb/en/library/configuring-mariadb-with-mycnf/
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)
}
if (FALSE) {
# 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")
# Always cleanup by disconnecting the database
dbDisconnect(con)
}
# All examples use the rs-dbi group by default.
if (mariadbHasDefault()) {
con <- dbConnect(RMariaDB::MariaDB(), dbname = "test")
con
dbDisconnect(con)
}