python – No module named MySQLdb

The Question :

430 people think this question is useful

I am using Python version 2.5.4 and install MySQL version 5.0 and Django. Django is working fine with Python, but not MySQL. I am using it in Windows Vista.

The Question Comments :
  • pip install mysql-python or pip install mysqlclient
  • I had to install sudo apt-get install libmysqlclient-dev to make it work.
  • pip install mysqlclient worked on windows x64 10, You rock Cœur
  • For Python3.6 sudo apt-get install libmysqlclient-dev and pip3 install mysqlclient worked for me

The Answer 1

668 people think this answer is useful

You need to use one of the following commands. Which one depends on what OS and software you have and use.

  1. easy_install mysql-python (mix os)
  2. pip install mysql-python (mix os/ python 2)
  3. pip install mysqlclient (mix os/ python 3)
  4. apt-get install python-mysqldb (Linux Ubuntu, …)
  5. cd /usr/ports/databases/py-MySQLdb && make install clean (FreeBSD)
  6. yum install MySQL-python (Linux Fedora, CentOS …)

For Windows, see this answer: Install mysql-python (Windows)

The Answer 2

152 people think this answer is useful

…and remember there is no MySQLdb for python3.x

(I know the question is about python2.x but google rates this post quite high)


EDIT: As stated in the comments, there’s a MySQLdb’s fork that adds Python 3 support: github.com/PyMySQL/mysqlclient-python

The Answer 3

76 people think this answer is useful

if your python version is 3.5, do a pip install mysqlclient, other things didn’t work for me

The Answer 4

48 people think this answer is useful

mysqldb is a module for Python that doesn’t come pre-installed or with Django. You can download mysqldb here.

The Answer 5

35 people think this answer is useful

Ubuntu:

sudo apt-get install python-mysqldb

The Answer 6

27 people think this answer is useful

Note this is not tested for python 3.x

In CMD

pip install wheel
pip install pymysql

in settings.py

import pymysql
pymysql.install_as_MySQLdb()

It worked with me

The Answer 7

15 people think this answer is useful
pip install PyMySQL

and then add this two lines to your Project/Project/init.py

import pymysql
pymysql.install_as_MySQLdb()

Works on WIN and python 3.3+

The Answer 8

12 people think this answer is useful

Try this.

pip install MySQL-python

The Answer 9

11 people think this answer is useful

If pip install mysqlclient produces an error and you use Ubuntu, try:

sudo apt-get install -y python-dev libmysqlclient-dev && sudo pip install mysqlclient

The Answer 10

10 people think this answer is useful

for window :

pip install mysqlclient pymysql

then:

import pymysql pymysql.install_as_MySQLdb()

for python 3 Ubuntu

sudo apt-get install -y python3-mysqldb

The Answer 11

9 people think this answer is useful

I am at ubuntu (linux) and what worked for me was

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential

and then finally

pip install mysqlclient

The Answer 12

6 people think this answer is useful

I met the same situation under windows, and searched for the solution.

Seeing this post Install mysql-python (Windows).

It points out installing such a pip environment is difficult, needs many other dependencies.

But I finally know that if we use mysqlclient with a version down to 1.3.4, it don’t need that requirements any more, so try:

pip install mysqlclient==1.3.4

The Answer 13

5 people think this answer is useful
pip install --user mysqlclient 

above works for me like charm for me.I go the error from sqlalchemy actually. Environment information :

Python : 3.6, Ubuntu : 16.04,conda 4.6.8

The Answer 14

5 people think this answer is useful

I personally recommend using pymysql instead of using the genuine MySQL connector, which provides you with a platform independent interface and could be installed through pip.

And you could edit the SQLAlchemy URL schema like this: mysql+pymysql://username:passwd@host/database

The Answer 15

4 people think this answer is useful
  • Go to your project directory with cd.
  • source/bin/activate (activate your env. if not previously).
  • Run the command easy_install MySQL-python

The Answer 16

3 people think this answer is useful

Thanks to derevo but I think there’s another good way for doing this:

  1. Download and install ActivePython
  2. Open Command Prompt
  3. Type pypm install mysql-python
  4. Read the notes specific to this package.

I think pypm is more powerful and reliable than easy_install.

The Answer 17

3 people think this answer is useful

For Python 3+ version

install mysql-connector as:

pip3 install mysql-connector 

Sample Python DB connection code:

import mysql.connector
db_connection = mysql.connector.connect(
  host="localhost",
  user="root",
  passwd=""
)
print(db_connection)

Output:

> <mysql.connector.connection.MySQLConnection object at > 0x000002338A4C6B00>

This means, database is correctly connected.

The Answer 18

3 people think this answer is useful

For Python 3.6+ sudo apt-get install libmysqlclient-dev and pip3 install mysqlclient does the trick

The Answer 19

2 people think this answer is useful

If you are running on Vista, you may want to check out the Bitnami Django stack. It is an all-in-one stack of Apache, Python, MySQL, etc. packaged with Bitrock crossplatform installers to make it really easy to get started. It runs on Windows, Mac and Linux. Oh, and is completely free 🙂

The Answer 20

2 people think this answer is useful

I have tried methods above, but still no module named ‘MySQLdb’, finally, I succeed with

easy_install mysql-python

my env is unbuntu 14.04

The Answer 21

2 people think this answer is useful

On Debian Buster, the following solution worked for me with python 3.7:

sudo apt-get install libmysqlclient-dev
sudo apt-get install libssl-dev
pip install mysqlclient

The Answer 22

1 people think this answer is useful

On OSX these commands worked for me

brew install mysql-connector-c 
pip install MySQL-python

The Answer 23

1 people think this answer is useful

If your are using SQLAlchemy and the error is in /site-packages/sqlalchemy/dialects/mysql/mysqldb.py:

from ...connectors.mysqldb import (
                        MySQLDBExecutionContext,
                        MySQLDBCompiler,
                        MySQLDBIdentifierPreparer,
                        MySQLDBConnector
                    )

so you may have missed mysqldb connector for SQLAlchemy and the solution is to re-install sqlalchemy after installing mysql-python module.

The Answer 24

1 people think this answer is useful

None of the above worked for me on an Ubuntu 18.04 fresh install via docker image.

The following solved it for me:

apt-get install holland python3-mysqldb

The Answer 25

0 people think this answer is useful

Win10 / Python27 this worked for me:

easy_install mysql-python

all other ‘pip install…’ failed with dependency errors

The Answer 26

0 people think this answer is useful

On my mac running Catalina v10.15.2, I had the following MySQLdb version conflict:

ImportError: this is MySQLdb version (1, 2, 5, 'final', 1), but _mysql is version (1, 4, 6, 'final', 0)

To resolve it, I did the following:

pip uninstall MySQL-python
pip install MySQL-python

The Answer 27

0 people think this answer is useful

This is for Linux Ubuntu.

When you do not have root access:

sudo apt-get install python-mysqldb

When you have root access:

apt-get install python-mysqldb

Add a Comment