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) - We refer to it as the Classic API.
It also contains an implementation of the XDevAPI - An Application Programming Interface for working with the MySQL Document Store.
The recommended way to install Connector/Python is via pip.
Make sure you have a recent pip version installed
on your system. If your system already has pip
installed, you might need
to update it. Or you can use the standalone pip installer.
The classic API can be installed via pip as follows:
$ pip install mysql-connector-python
similarly, the XDevAPI can be installed with:
$ pip install mysqlx-connector-python
Please refer to the installation tutorial for installation alternatives of the XDevAPI.
Connector packages included in MySQL Connector/Python allow you to install optional dependencies to unleash certain functionalities.
# 3rd party packages to unleash the telemetry functionality are installed
$ pip install mysql-connector-python[telemetry]
similarly, for the XDevAPI:
# 3rd party packages to unleash the compression functionality are installed
$ pip install mysqlx-connector-python[compression]
This installation option can be seen as a shortcut to install all the dependencies needed by a particular feature. Mind that this is optional and you are free to install the required dependencies by yourself.
Options for the Classic connector:
- dns-srv
- gssapi
- fido2
- telemetry
Options for the XDevAPI connector:
- dns-srv
- compression
import mysql.connector
# Connect to server
cnx = mysql.connector.connect(
host="127.0.0.1",
port=3306,
user="mike",
password="s3cre3t!")
# Get a cursor
cur = cnx.cursor()
# Execute a query
cur.execute("SELECT CURDATE()")
# Fetch one result
row = cur.fetchone()
print("Current date is: {0}".format(row[0]))
# Close connection
cnx.close()
import mysqlx
# Connect to server
session = mysqlx.get_session(
host="127.0.0.1",
port=33060,
user="mike",
password="s3cr3t!")
schema = session.get_schema("test")
# Use the collection "my_collection"
collection = schema.get_collection("my_collection")
# Specify which document to find with Collection.find()
result = collection.find("name like :param") \
.bind("param", "S%") \
.limit(1) \
.execute()
# Print document
docs = result.fetch_all()
print(r"Name: {0}".format(docs[0]["name"]))
# Close session
session.close()
- MySQL Connector/Python Developer Guide
- MySQL Connector/Python X DevAPI Reference
- MySQL Connector/Python Forum
- MySQL Public Bug Tracker
- Slack (Sign-up required if you do not have an Oracle account)
- Stack Overflow
- Oracle Blogs
There are a few ways to contribute to the Connector/Python code. Please refer to the contributing guidelines for additional information.
Please refer to the README.txt and LICENSE.txt files, available in this repository, for further details.