Skip to main content

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.


These are the placeholders you need to replace in the code sample:

MYSQL_URIService URI for MySQL connection, from Aiven Console > the Overview page of your service


  • 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).


Add the following to index.php and replace the placeholder with the MySQL URI:


$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()");
} 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: