Connect from ‘C’ App
MariaDB Connector/C enables C and C++ applications to establish client connections to MariaDB database products over TLS. MariaDB Connector/C is a native connector that is written in C.
Compatibility
MariaDB Connector/C is compatible with:
- MariaDB SkySQL DBaaS
- MariaDB database products (including MariaDB Enterprise Server and MariaDB MaxScale)
First Install MariaDB Connector/C
MariaDB Connector/C enables C and C++ applications to establish client connections to MariaDB database products over TLS.
Additional information on MariaDB Connector/C is available in the MariaDB Knowledge Base.
Connection Info
The connection is configured via the information that is initially acquired from the SkySQL Portal pages:
Function | Option/Argument | Where to find it |
---|---|---|
mysql_optionsv() | MYSQL_OPT_SSL_CA option | The path to the skysql_chain.pem file containing the https://mariadb.com/docs/skysql-previous-release/connect/connection-parameters-portal/#Certificate_Authority_Chain |
• https://supplychain.mariadb.com/skysql_chain.pem | ||
• https://supplychain.mariadb.com/aws_skysql_chain.pem | ||
mysql_real_connect() | host argument | The fully Qualified Domain Name in the https://mariadb.com/docs/skysql-previous-release/connect/connection-parameters-portal/ |
mysql_real_connect() | user argument | The desired username, which might be the default username in the Service Credentials view |
mysql_real_connect() | passwd argument | The user's password, which might be the default password in the Service Credentials view if it was not yet customized |
mysql_real_connect() | port argument | The Read-Write Port or Read-Only Port in the https://mariadb.com/docs/skysql-previous-release/connect/connection-parameters-portal/ |
Code Example
The following code demonstrates how to use MariaDB Connector/C to connect to MariaDB database products. This example uses the example database and user account:
#include <stdio.h>
#include <stdlib.h>
#include <mysql.h>
int main (int argc, char* argv[])
{
// Initialize Connection
MYSQL *conn;
if (!(conn = mysql_init(0)))
{
fprintf(stderr, "unable to initialize connection struct\n");
exit(1);
}
// Connect to the database
if (!mysql_real_connect(
conn, // Connection
"example.skysql.net", // Host
"db_user", // User account
"db_user_password", // User password
"test", // Default database
3006, // Port number
NULL, // Path to socket file
0 // Additional options
))
{
// Report the failed-connection error & close the handle
fprintf(stderr, "Error connecting to Server: %s\n", mysql_error(conn));
mysql_close(conn);
exit(1);
}
// Use the Connection
// ...
// Close the Connection
mysql_close(conn);
return 0;
}