Connect to Aiven for MySQL® with PHP#
This example connects to an Aiven for MySQL® service from PHP, making use of the built-in PDO module.
Variables#
These are the placeholders you need to replace in the code sample:
Variable |
Description |
---|---|
|
Service URI for MySQL connection, from Aiven Console > the Overview page of your service |
Pre-requisites#
Download CA certificates from Aiven Console > the Overview page of your service. This example assumes it is in a local file called
ca.pem
.Make sure you have read/write permissions to the ca.pem file and you add an absolute path to this file into the code:
$conn .= ";sslmode=verify-ca;sslrootcert='D:/absolute/path/to/ssl/certs/ca.pem'"
Note
Your PHP installation needs to include the MySQL functions (most installations have this already).
Code#
Add the following to index.php
and replace the placeholder with the MySQL URI:
<?php
$uri = "MYSQL_URI";
$fields = parse_url($uri);
// build the DSN including SSL settings
$conn = "mysql:";
$conn .= "host=" . $fields["host"];
$conn .= ";port=" . $fields["port"];;
$conn .= ";dbname=defaultdb";
$conn .= ";sslmode=verify-ca;sslrootcert='D:/absolute/path/to/ssl/certs/ca.pem'";
try {
$db = new PDO($conn, $fields["user"], $fields["pass"]);
$stmt = $db->query("SELECT VERSION()");
print($stmt->fetch()[0]);
} catch (Exception $e) {
echo "Error: " . $e->getMessage();
}
This code creates a MySQL client and opens a connection to the database. It then runs a query checking the database version and prints the response.
Note
This example replaces the query string parameter to specify sslmode=verify-ca
to make sure that the SSL certificate is verified, and adds the location of the cert.
Run the following code:
php index.php
If the script runs successfully, the output is the MySQL version running in your service like:
8.0.28