---
title: "MySQL® - Connect with Python"
description: "Learn how to connect to a MySQL® database instance with one of the world's most famous programming languages: Python."
url: https://docs.us.ovhcloud.com/en/public-cloud/databases/mysql-connect-python
lang: en
---
> For AI agents: the complete documentation index is available at https://docs.us.ovhcloud.com/en/llms.txt, the full documentation bundle is available at https://docs.us.ovhcloud.com/en/llms-full.txt.

# MySQL® - Connect with Python

**Learn how to connect to a MySQL® database instance with one of the world's most famous programming languages: Python.**

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](https://github.com/ovh/public-cloud-databases-examples/tree/main/databases/mysql/python/hello-world).

 

## Requirements

- Access to the [OVHcloud Control Panel](https://manager.us.ovhcloud.com/)
- A [Public Cloud project](https://us.ovhcloud.com/public-cloud/) in your OVHcloud account
- A MySQL® database running on your OVHcloud Cloud Databases ([this guide](https://docs.us.ovhcloud.com/en/public-cloud/databases/getting-started.md) can help you to meet this requirement)
- [Configure your MySQL® instance](https://docs.us.ovhcloud.com/en/public-cloud/databases/mysql-configure-instance-accept-incoming-connections.md) to accept incoming connections
- A Python environment with a stable version and public network connectivity (Internet). This guide was made using Python 3.9.7.

 

## Concept

A MySQL[®](#go-further) 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](https://docs.us.ovhcloud.com/en/public-cloud/databases/mysql-connect-cli.md).

Another way is to interact directly using a programming language, such as Python. Python is one of the major programming languages in the world, especially in the Data ecosystem.

To do so, we will need to set up our Python environment with MySQL® drivers and finally code in Python to perform a few example actions.

 

## Instructions

### Set up your Python environment

To interact with your MySQL® instance using Python, your development environment needs to be configured with:

- A compatible version of Python
- Mysql connector

Please follow the official [MySQL® Connector/Python](https://dev.mysql.com/doc/connector-python/en/) documentation to get the latest information.

Once your Python environment is set up and you begin executing a **python --version** in your command line interface (CLI), you should see information about the version as shown below:

```python
laptop$ python3 --version
Python 3.9.7
```

In the same console, by typing a **pip list**, check if **mysql-connector-python** is correctly installed:

```python
laptop$  pip list           
Package                Version
---------------------- -------
mysql-connector-python 8.0.27
pip                    20.3.4
protobuf               3.19.3
setuptools             52.0.0
wheel                  0.34.2
(...)
```

We are now ready to learn how to connect to our MySQL® instance!

 

### Connect with Python

#### Using MySQL® Connector

MySQL® Connector/Python enables Python programs to access MySQL® databases, using an API that is compliant with the [Python Database API Specification v2.0 (PEP 249)](http://www.python.org/dev/peps/pep-0249/).

In your Python environment, let's try a connection.

First, create the file `connect-mysql.py`.

Use the code example below, substituting your `<user name>`, `<password>`, `<host>`, and `<port>` into the spaces:

```python

# Note this example is valid for Python v2 and v3

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

config = {
    'user':'avnadmin',
    'password':'K93xxxxxxxxxxaBp',
    'host':'mysql-11xxxx20-o2xxxxb53.database.cloud.ovh.us',
    '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()
```

After executing your Python code, the result shown in the CLI should be like this:

```python
('Ssl_cipher', 'TLS_AES_256_GCM_SHA384')
```

If not, your CLI should give you more details about the issue, for example:

- _Authentication failed_: could be an error with your user login or password;
- _nodename nor servname provided, or not known_: could be a wrongly typed hostname;
- _Connection reset by peer_: usually due to connection without secure TLS mode. Use _tls=true_ parameter.

 

## Go further

Browse all the [Databases guides](https://docs.us.ovhcloud.com/en/public-cloud/databases/landing-page-databases.md).

Browse the rest of the [OVHcloud US documentation](https://docs.us.ovhcloud.com/en/index.md) for guides on our other products and services.

Learn more about [Managed Databases](https://us.ovhcloud.com/public-cloud/databases/) on the OVHcloud US website.

OVHcloud Managed Databases and Analytics:

- Grafana® is a registered trademark of Grafana Labs and is used with the permission of Grafana Labs. OVH SAS and its subsidiaries are not affiliated with or endorsed by Grafana Labs.
- Kafka® is a registered trademark of The Apache Software Foundation and has been licensed for use by OVHcloud, who has no affiliation with and is not endorsed by The Apache Software Foundation.
- MongoDB® is a registered trademark of MongoDB, Inc.
- MySQL® is a registered trademark of Oracle and/or its affiliates.
- PostgreSQL® is a registered trademark of the PostgreSQL Community Association of Canada.
