For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/public-cloud/databases/mysql-connect-python.md.

Se connecter avec Python au service Public Cloud Databases pour MySQL

Voir en Markdown

Connectez-vous à votre service Public Cloud Databases pour MySQL à l'aide du langage de programmation Python

Objectif

Public Cloud Databases vous permet de vous concentrer sur la création et le déploiement de vos applications cloud, pendant qu'OVHcloud prend en charge l'infrastructure de base de données et son maintien en conditions opérationnelles.

Ce guide explique comment se connecter à une instance de base de données MySQL avec l'un des langages de programmation les plus célèbres au monde : Python.

Vous trouverez un exemple sur le dépôt d'exemples GitHub.

Prérequis

  • Un projet Public Cloud dans votre compte OVHcloud
  • Une base de données MySQL fonctionnant sur votre Public Cloud Databases OVHcloud (ce guide peut vous aider à répondre à ce prérequis)
  • Configurez votre instance MySQL pour qu'elle accepte les connexions entrantes
  • Un environnement Python avec une version stable et une connectivité réseau publique (Internet). Ce guide a été réalisé avec Python 3.13.

Concept

Une instance MySQL peut être gérée de plusieurs façons. L'une des plus simples, mais aussi des plus puissantes, consiste à utiliser une interface en ligne de commande (CLI), comme illustré dans notre guide : Se connecter à MySQL avec la CLI.

Une autre méthode consiste à interagir directement à l'aide d'un langage de programmation, tel que Python. Python est l'un des principaux langages de programmation au monde, en particulier dans l'écosystème de la data.

Pour ce faire, nous devrons configurer notre environnement Python avec les drivers MySQL, puis coder en Python pour effectuer quelques actions d'exemple.

En pratique

Configurer votre environnement Python

Pour interagir avec votre instance MySQL à l'aide de Python, votre environnement de développement doit être configuré avec :

  • Une version compatible de Python
  • Le connecteur MySQL

Suivez la documentation officielle MySQL Connector/Python pour obtenir les dernières informations.

Une fois votre environnement Python configuré, lorsque vous exécutez un python --version dans votre interface en ligne de commande (CLI), vous devriez voir apparaître des informations sur la version, comme illustré ci-dessous :

laptop$ python3 --version
Python 3.13

Dans la même console, en saisissant pip list, vérifiez que mysql-connector-python est correctement installé :

laptop$  pip list           
Package                Version
---------------------- -------
mysql-connector-python 9.4.0
(...)

Nous sommes maintenant prêts à découvrir comment nous connecter à notre instance MySQL !

Se connecter avec Python

Utiliser MySQL Connector

MySQL Connector/Python permet aux programmes Python d'accéder aux bases de données MySQL, en utilisant une API conforme à la spécification Python Database API v2.0 (PEP 249).

Dans votre environnement Python, essayons une connexion. Remplacez l'utilisateur, le mot de passe, l'hôte et le port par les valeurs de votre service. L'hôte et le port sont affichés dans la section Informations de connection de l'onglet Dashboard. Le port est propre à chaque service.

import sys
import mysql.connector
from mysql.connector.constants import ClientFlag

config = {
    'user':'avnadmin',
    'password':'K93xxxxxxxxxxaBp',
    'host':'mysql-11xxxx20-o2xxxxb53.database.cloud.ovh.net',
    'port':'20184'
}

cnx = mysql.connector.connect(**config)
cur = cnx.cursor(buffered=False)
cur.execute("SHOW GLOBAL STATUS LIKE 'Ssl_cipher'")
print(cur.fetchone())
cur.close()
cnx.close()

Après avoir exécuté votre code Python, le résultat affiché dans la CLI devrait ressembler à ceci :

('Ssl_cipher', 'TLS_AES_256_GCM_SHA384')

Si ce n'est pas le cas, votre CLI devrait vous fournir davantage de détails sur le problème, par exemple :

  • Access denied for user : peut indiquer une erreur au niveau de votre identifiant ou de votre mot de passe ;
  • nodename nor servname provided, or not known : peut indiquer un nom d'hôte mal saisi ;
  • Can't connect to MySQL server (délai d'attente dépassé) : généralement, l'adresse IP de votre client n'est pas autorisée sur votre service. Consultez le guide « Configurez les connexions entrantes d'un service Public Cloud Databases pour MySQL » ;
  • Connection reset by peer : généralement dû à une connexion sans mode TLS sécurisé. Ne définissez pas le paramètre ssl_disabled sur True.

Vérifier l'identité du serveur

L'exemple ci-dessus chiffre la connexion mais ne vérifie pas l'identité du serveur. Pour la vérifier, téléchargez le certificat CA de votre service depuis le champ Certificat de la section Informations de connection (onglet Dashboard), puis ajoutez ces paramètres au dictionnaire config :

    'ssl_ca':'/path/to/ca.pem',
    'ssl_verify_cert':True,
    'ssl_verify_identity':True

Aller plus loin

Vous êtes sur Discord ? Rejoignez notre chaîne via https://discord.gg/ovhcloud et interagissez directement avec l’équipe qui développe notre service de bases de données !

Pour une formation ou une assistance technique sur la mise en œuvre de nos solutions, contactez votre commercial ou consultez la page Professional Services pour obtenir un devis et faire analyser votre projet par nos experts.

Rejoignez notre communauté d'utilisateurs.

Cette page vous a-t-elle aidé ?