When working in Python you may encounter the the error
ImportError: No Module Named mysql.connector when attempting to use the MySQL Connector Python Module.
If this error occurs, it typically means that the
mysql-connector-python package which provides a connection for MySQL database from Python, is not installed in your current environment.
Install the MySQL Connector Python Package
The first step is to ensure you have the
msql-python-connector package installed on your environment. You can do this by using pip, which is a package manager for Python.
Open a terminal (command prompt in Windows) and run the command:
pip install mysql-connector-python
Defaulting to user installation because normal site-packages is not writeable Collecting mysql-connector-python Downloading mysql_connector_python-8.0.33-cp310-cp310-manylinux1_x86_64.whl (27.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 27.4/27.4 MB 4.0 MB/s eta 0:00:00 Requirement already satisfied: protobuf<=3.20.3,>=3.11.0 in (from mysql-connector-python) (3.20.3) Installing collected packages: mysql-connector-python Successfully installed mysql-connector-python-8.0.33
This will install the MySQL connector for Python. If you're using a specific version of Python 3, you might need to use
pip3 instead of
pip3 install mysql-connector-python
NOTE: If you are on a Python virtual environment, be sure to activate your environment before running this command to ensure that the package is installed in the current environment rather than global scope.
Once the install is complete, you should verify if the MySQL Connector Python has been installed successfully.
You can do this by running the following command in your Python environment:
>>> import mysql.connector >>>
If you don't get any error messages, that means the package has been installed successfully.
If you're still getting the same error after running the installation, there might be some other issues.
The following are some potential causes you can verify.
Python or Pip Version
Ensure you are using the correct version of Python and pip. You might have multiple versions installed on your machine, so you need to ensure that you're installing the package for the correct version.
If you're using a Python virtual environment, you need to make sure you've activated it before installing the package. Also, run the
import statement within the same environment where the package was installed.
Ensure the Python and pip directories are added to your system's PATH variable.
You might need administrative permissions to install the package. If so, you can use the
sudo command (on Linux or macOS) or run the command prompt as an administrator (on Windows).
Last Resort - Alternative Driver
If the problem still persists, you may consider using an alternative MySQL driver, such as
PyMySQL, a pure-Python MySQL client library, and can be used as a drop-in replacement for MySQL Connector.
You can install it via pip:
pip install PyMySQL
To connect to your target MySQL version, run the code as shown:
import pymysql conn = pymysql.connect( host='localhost', user='root', password='mysql', db='db', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor )
In this tutorial, we discussed the measures you can take to fix the "ImportError: No Module Named mysql.connector" error when working in Python.