# mysql-connector-python
**Repository Path**: mirrors_mysql/mysql-connector-python
## Basic Information
- **Project Name**: mysql-connector-python
- **Description**: MySQL Connector/Python is implementing the MySQL Client/Server protocol completely in Python. No MySQL libraries are needed, and no compilation is necessary to run this Python DB API v2.0 compliant driver. Documentation & Download: http://dev.mysql.com/doc/connector-python/en
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: trunk
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-08-19
- **Last Updated**: 2026-02-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
MySQL Connector/Python
======================
.. === [repl-mysqlx("mysql-connector-python", "mysqlx-connector-python")] ===
.. image::
https://img.shields.io/pypi/v/mysql-connector-python.svg
:target: https://pypi.org/project/mysql-connector-python/
.. image::
https://img.shields.io/pypi/pyversions/mysql-connector-python.svg
:target: https://pypi.org/project/mysql-connector-python/
.. image::
https://img.shields.io/pypi/l/mysql-connector-python.svg
:target: https://pypi.org/project/mysql-connector-python/
.. === ===
.. === [repl(" - We refer to it as the", "."), repl("`Classic API `__.", "")] ====
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 `__.
.. === ====
.. === [repl("It also", "MySQL Connector/Python")] ===
It also contains an implementation of the `X DevAPI `__
- An Application Programming Interface for working with the `MySQL Document Store
`__.
.. === ===
.. === [repl("* `X DevAPI `__", "")] ====
Features
--------
* `Asynchronous Connectivity `__
* `C-extension `__
* `Telemetry `__
* `X DevAPI `__
.. === ====
Installation
------------
Connector/Python contains the Classic and X DevAPI connector APIs, which are
installed separately. Any of these can be installed from a binary
or source distribution.
Binaries are distributed in the following package formats:
* `RPM `__
* `WHEEL `__
On the other hand, the source code is distributed as a compressed file
from which a wheel package can be built.
The recommended way to install Connector/Python is via `pip `__,
which relies on WHEEL packages. For such a reason, it is the installation procedure
that is going to be described moving forward.
Please, refer to the official MySQL documentation `Connector/Python Installation
`__ to
know more about installing from an RPM, or building and installing a WHEEL package from
a source distribution.
Before installing a package with `pip `__, it is strongly suggested
to have the most 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 `__.
.. === [repl("The *Classic API* can be installed via pip as follows:", "")] ===
The *Classic API* can be installed via pip as follows:
.. code-block:: bash
$ pip install mysql-connector-python
.. === ====
.. === [repl("similarly, the *X DevAPI* can be installed with:", "")] ===
similarly, the *X DevAPI* can be installed with:
.. code-block:: bash
$ pip install mysqlx-connector-python
Please refer to the `installation tutorial `__
for installation alternatives of the X DevAPI.
.. === ===
Installation Options
++++++++++++++++++++
Connector packages included in MySQL Connector/Python allow you to install
optional dependencies to unleash certain functionalities.
.. === ===
.. code-block:: bash
# 3rd party packages to unleash the telemetry functionality are installed
$ pip install mysql-connector-python[telemetry]
.. === ===
.. === [repl("similarly, for the X DevAPI:", "")] ===
similarly, for the X DevAPI:
.. code-block:: bash
# 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.
.. === [repl("Options for the Classic API connector:", "Available options:")] ===
Options for the Classic API connector:
* dns-srv
* gssapi
* webauthn
* telemetry
.. === ===
.. === [repl("Options for the X DevAPI connector:", "Available options:")] ===
Options for the X DevAPI connector:
* dns-srv
* compression
.. === ===
.. === [repl("Classic API ", ""), repl("-------", "-----------")] ===
Classic API Sample Code
-----------------------
.. code:: python
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()
.. === ===
.. === [repl("X DevAPI ", ""), repl("-------", "-----------")] ===
X DevAPI Sample Code
--------------------
.. code:: python
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()
.. === ===
.. === ===
HeatWave GenAI and Machine Learning Support
-------------------------------------------
MySQL Connector/Python now includes an optional API for integrating directly with MySQL HeatWave's AI and Machine Learning capabilities. This new SDK is designed to reduce the time required to generate proofs-of-concept (POCs) by providing an intuitive Pythonic interface that automates the management of SQL tables and procedures.
The new ``mysql.ai`` module offers two primary components:
* **GenAI:** Provides implementations of LangChain's abstract ``LLM``, ``VectorStore``, and ``Embeddings`` classes (``MyLLM``, ``MyVectorStore``, ``MyEmbeddings``). This ensures full interoperability with existing LangChain pipelines, allowing developers to easily substitute existing components with HeatWave-backed versions.
* **AutoML:** Provides Scikit-Learn compatible estimators (``MyClassifier``, ``MyRegressor``, ``MyAnomalyDetector``, ``MyGenericTransformer``) that inherit from standard Scikit-Learn mixins. These components accept Pandas DataFrames and can be dropped directly into existing Scikit-Learn pipelines and grid searches.
**Note on Dependencies:** These features introduce dependencies on ``langchain``, ``pandas``, and ``scikit-learn``. To keep existing installations unchanged and the base connector lightweight, these dependencies are **not installed by default**. You must install them separately to use the ``mysql.ai`` features.
**Example: GenAI Chatbot with Memory**
This example demonstrates how to use ``MyLLM`` within a loop to create a simple chatbot that maintains conversation history.
.. code:: python
from collections import deque
from mysql import connector
from mysql.ai.genai import MyLLM
def run_chatbot(db_connection, chat_history_size=5):
# Initialize MyLLM with the database connection
my_llm = MyLLM(db_connection)
# Maintain a limited history for context
chat_history = deque(maxlen=chat_history_size)
system_msg = "System: You are a helpful AI assistant."
while True:
user_input = input("\nUser: ")
if user_input.lower() in ["exit", "quit"]:
break
# Format history and invoke the LLM
history = [system_msg] + list(chat_history) + [f"User: {user_input}"]
prompt = "\n".join(history)
# Invoke HeatWave GenAI
response = my_llm.invoke(prompt)
print(f"Bot: {response}")
# Update history
chat_history.append(f"User: {user_input}")
chat_history.append(f"Bot: {response}")
# Usage
with connector.connect(user='root', database='mlcorpus') as db_connection:
run_chatbot(db_connection)
**Example: HeatWave AutoML in a Scikit-Learn Pipeline**
This example shows how to use ``MyClassifier`` as a drop-in replacement within a standard Scikit-Learn pipeline.
.. code:: python
import pandas as pd
from mysql import connector
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from mysql.ai.ml import MyClassifier
# 1. Setup Data (Pandas DataFrame)
X = pd.DataFrame([[0.5, 0.1], [1.0, 0.8], [0.1, 0.2]], columns=["feat1", "feat2"])
y = pd.Series([0, 1, 0], name="target")
# 2. Connect and Train
with connector.connect(user='root', database='mlcorpus') as db_connection:
# Initialize the HeatWave classifier
clf = MyClassifier(db_connection)
# Create a standard Scikit-Learn pipeline
pipe = Pipeline([
("scaler", StandardScaler()),
("mysql_clf", clf)
])
# Fit the model (automates upload and training on HeatWave)
pipe.fit(X, y)
# Predict
preds = pipe.predict(X)
print(f"Predictions: {preds}")
# Score
score = pipe.score(X, y)
print(f"Accuracy: {score}")
.. === ===
.. === [repl-mysql("- `MySQL Connector/Python X DevAPI Reference `__", ""), repl-mysqlx("- `MySQL Connector/Python Developer Guide `__", "")] ===
Additional Resources
--------------------
- `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 `__
.. === ===
Contributing
------------
There are a few ways to contribute to the Connector/Python code. Please refer
to the `contributing guidelines `__ for additional information.
License
-------
Please refer to the `README.txt `__ and `LICENSE.txt `__
files, available in this repository, for further details.