# 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.