Learn how to connect to a MySQL database instance with one of the world's most famous programming languages: PHP.
Managed Databases (also called Cloud Databases) allow you to focus on building and deploying cloud applications while OVHcloud takes care of the database infrastructure and maintenance in operational conditions.
You can find an example on the GitHub examples repository.
Requirements
- access to the OVHcloud Control Panel
- a Public Cloud project in your OVHcloud account
- a MySQL database running on your OVHcloud Cloud Databases (this guide can help you to meet this requirement)
- configure your MySQL instance to accept incoming connections
- a PHP environment with a stable version and public network connectivity (Internet). This guide was made in PHP 8.0.8.
Concept
A MySQL instance can be managed in multiple ways. One of the easiest, yet powerful, is to use a Command Line Interface (CLI), as shown in our guide: Connect to MySQL with CLI.
Another way is to interact directly using programming languages, such as PHP. PHP is used in almost 80% of the websites in the world, such as Facebook, Wikipedia, or WordPress. MySQL provides PHP drivers, allowing us to connect and manage a MySQL instance from code.
To do so, we will need to set up our PHP environment with MySQL drivers and finally code in PHP to perform a few example actions.
Instructions
Setup your PHP environment
To interact with your MySQL instance with PHP, your development environment needs to be configured with:
- A compatible version of PHP;
- MySQLi PHP extension;
php -m
. If you can edit your PHP environment on your own, install extensions and libraries as detailed in the documentation page linked here: MySQL Drivers and Plugin.We are now ready to learn how to connect to our MySQL instance.
Connect with PHP
Using mysqli
[~]$ cat connect-mysql.php
<?php $host = "mysql-11xxxx20-o2xxxx53.database.cloud.ovh.us"; $user = "avnadmin"; $password = "K93xxxxxxxxxxxxxaBp"; $dbname = "defaultdb"; $port = "20184"; try { $db = mysqli_init(); $link = mysqli_real_connect($db, $host, $user, $password, $dbname, $port, NULL, MYSQLI_CLIENT_SSL); $res = $db->query("SHOW GLOBAL STATUS LIKE 'Ssl_cipher';"); $rows = $res->fetch_all(); var_dump($rows[0]); $db->close(); } catch (Throwable $e) { echo "Captured Throwable for connection : " . $e->getMessage() . PHP_EOL; } ?>
If you are connected, the result should be like this:
[~]$ php connect-mysql.php
array(2) { [0]= string(10) "Ssl_cipher" [1]= string(22) "TLS_AES_256_GCM_SHA384" }
Using PDO
Log in to your OVHcloud Control Panel and switch to Public Cloud
in the top navigation bar. After selecting your Public Cloud project, click on Databases
in the left-hand navigation bar, and select your MySQL instance.
Select the General Information
tab. In the Login Information section, download the CA certificate.
[~]$ cat connect-mysql-pdo.php
<?php $host = "mysql-11xxxx20-o2xxxx53.database.cloud.ovh.us"; $user = "avnadmin"; $password = "K93xxxxxxxxxxxxxaBp"; $dbname = "defaultdb"; $port = "20184"; $options = array( PDO::MYSQL_ATTR_SSL_CA => '/<path to>/ca.pem', PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => true ); try { $conn = new PDO("mysql:host=$host; port=$port; dbname=$dbname", $user, $password, $options); var_dump($conn->query("SHOW STATUS LIKE 'Ssl_cipher';")->fetchAll()); $conn = null; } catch (Throwable $e) { echo "Captured Throwable for connection : " . $e->getMessage() . PHP_EOL; } ?>
If you are connected, the result should be like this:
[~]$ php connect-mysql-pdo.php
array(1) { [0]= array(4) { ["Variable_name"]= string(10) "Ssl_cipher" [0]= string(10) "Ssl_cipher" ["Value"]= string(22) "TLS_AES_256_GCM_SHA384" [1]= string(22) "TLS_AES_256_GCM_SHA384" } }
Go further
For more information and tutorials, please see our other Cloud Databases support guides or explore the guides for other OVHcloud products and services.