Utilisez la bibliothèque mysqlclient pour vous connecter à un cluster AnalyticDB for MySQL, exécuter des instructions SQL et récupérer les résultats.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Python 3
-
La bibliothèque
mysqlclientinstallée :mysqlclientest le nom du package pour Python 3. Il s'importe sous le nomMySQLdbdans le code.pip install mysqlclient Un cluster AnalyticDB for MySQL disposant d'une base de données et d'un compte (privilégié ou standard)
Connexion au cluster
L'exemple suivant établit une connexion, exécute une requête pour récupérer la version de la base de données, puis ferme la connexion.
import MySQLdb
# Open a connection to the cluster.
db = MySQLdb.connect(
host="<endpoint>", # Cluster endpoint or IP address
port=3306, # Port number
user="<account-name>", # Privileged or standard account
passwd="<password>", # Account password
db="<db-name>" # Target database name
)
cursor = db.cursor()
# Execute a SQL statement.
cursor.execute("SELECT VERSION()")
# Fetch the result.
data = cursor.fetchone()
print("Database version: %s" % data)
# Close the connection.
db.close()
Remplacez les espaces réservés avant d'exécuter le code :
| Espace réservé | Description | Exemple |
|---|---|---|
<endpoint> |
Endpoint ou adresse IP du cluster | am-bp***.ads.aliyuncs.com |
<account-name> |
Nom du compte utilisé pour la connexion | myaccount |
<password> |
Mot de passe du compte | — |
<db-name> |
Nom de la base de données cible | mydb |
AnalyticDB for MySQL prend en charge deux types de comptes : les comptes privilégiés et les comptes standards. Les deux peuvent se connecter à l'aide de la méthode illustrée ci-dessus.
Gestion des erreurs de connexion
Encapsulez la connexion dans un bloc try/except pour intercepter et diagnostiquer les échecs :
import MySQLdb
db = None
try:
db = MySQLdb.connect(
host="<endpoint>",
port=3306,
user="<account-name>",
passwd="<password>",
db="<db-name>"
)
cursor = db.cursor()
cursor.execute("SELECT VERSION()")
data = cursor.fetchone()
print("Database version: %s" % data)
except MySQLdb.Error as e:
print("Connection failed: %s" % str(e))
finally:
if db is not None:
db.close()