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 to replace in the code sample:
Variable | Description |
---|---|
MYSQL_URI | Service URI for MySQL connection, from Aiven Console > the Overview page of your service |
Prerequisites
-
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'"
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.
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