jbcedge
jbcedge

Reputation: 19505

No module named MySQLdb

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.

Upvotes: 537

Views: 997706

Answers (30)

Tonny
Tonny

Reputation: 61

Windows 7 / Python 3.6.5 this works for me:

conda install -y mysqlclient

Upvotes: 1

Susobhan Das
Susobhan Das

Reputation: 1144

For CentOS 8 and Python3

$ sudo dnf install python3-mysqlclient -y

Upvotes: 0

wwmwabini
wwmwabini

Reputation: 145

When I ran the command apt-get install python-mysqldb, I still encountered the error message below

mysql_config not found when installing mysqldb python interface

So I first had to run the command below

sudo apt-get install libmariadbclient-dev

If you use MySQL instead of MariaDB, run the following instead

Then run

apt-get install python-mysqldb 

Then now run

pip install mysqlclient

Upvotes: 0

Umair Ayub
Umair Ayub

Reputation: 21201

For Python 3.6+

sudo apt-get install libmysqlclient-dev
pip3 install mysqlclient

does the trick

Upvotes: 13

Akash Kumar Verma
Akash Kumar Verma

Reputation: 3318

Python 3.8

sudo apt-get install libmysqlclient-dev
sudo apt-get install -y python3-mysqldb
pip3 install pymysql

settings.py

import pymysql
pymysql.install_as_MySQLdb()

Upvotes: 11

CJT
CJT

Reputation: 75

Faced this issue with mysql.connector.python version 8.0.24 on mac(if code base is same then the issue should happen in windows as well). This file on line 51 imports "from django.db.backends.mysql.base import DatabaseWrapper as MySQLDatabaseWrapper". The imported file has following code 14-20(exact code and error that you received is part of code

try:
    import MySQLdb as Database
except ImportError as err:
    raise ImproperlyConfigured(
        'Error loading MySQLdb module.\n'
        'Did you install mysqlclient?'
    ) from err

The error is formed here. Not sure why this import keeps coming back in different version of mysql connector but 8.0.23 does not have the import, so I reverted to that version and error was gone... This is incase you wish to continue to work with mysql.connector.python

Upvotes: 1

kujiy
kujiy

Reputation: 6127

Python 3

Make sure the import order:

#BAD
import MySQLdb             # <------ NOT here
import pymysql
pymysql.install_as_MySQLdb()

#GOOD
import pymysql
pymysql.install_as_MySQLdb()
import MySQLdb              # <------- HERE!

Upvotes: 3

Saurabh Chandra Patel
Saurabh Chandra Patel

Reputation: 13586

for Windows :

pip install mysqlclient pymysql

then:

import pymysql
pymysql.install_as_MySQLdb()

for python 3 Ubuntu

sudo apt-get install -y python3-mysqldb

Upvotes: 24

James Briggs
James Briggs

Reputation: 914

For anyone coming to this page when trying to find a solution for sqlalchemy, all you need to do is:

pip install PyMySQL

And adjust your connection string to use PyMySQL, from mysql:// to mysql+pymysql://.

Upvotes: 48

Arsalan Ahmad Ishaq
Arsalan Ahmad Ishaq

Reputation: 977

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

Upvotes: 39

nsssayom
nsssayom

Reputation: 374

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

Upvotes: 3

ScottK
ScottK

Reputation: 1556

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

Upvotes: 1

jfxninja
jfxninja

Reputation: 381

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

Upvotes: 2

Justin Lee
Justin Lee

Reputation: 890

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

Upvotes: 8

Cris
Cris

Reputation: 2943

Win10 / Python27 this worked for me:

easy_install mysql-python

all other 'pip install...' failed with dependency errors

Upvotes: 0

Asraful
Asraful

Reputation: 1290

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

Upvotes: 6

Om Sao
Om Sao

Reputation: 7643

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.

Upvotes: 3

derevo
derevo

Reputation: 9227

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)

Upvotes: 755

Venkat Kotra
Venkat Kotra

Reputation: 10743

Try this.

pip install MySQL-python

Upvotes: 13

Kostyantyn
Kostyantyn

Reputation: 5191

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

Upvotes: 13

A.Raouf
A.Raouf

Reputation: 2320

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

Upvotes: 39

alphiii
alphiii

Reputation: 1635

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+

Upvotes: 21

mtoloo
mtoloo

Reputation: 1875

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.

Upvotes: 2

Joe Inner
Joe Inner

Reputation: 1470

On OSX these commands worked for me

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

Upvotes: 3

Alfred Huang
Alfred Huang

Reputation: 18235

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

Upvotes: 7

goksel
goksel

Reputation: 4560

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

Upvotes: 99

Janek Olszak
Janek Olszak

Reputation: 4303

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

Upvotes: 180

Pythoner
Pythoner

Reputation: 5585

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

Upvotes: 2

GrvTyagi
GrvTyagi

Reputation: 4477

  • Go to your project directory with cd.
  • source/bin/activate (activate your env. if not previously).
  • Run the command easy_install MySQL-python

Upvotes: 5

Afshin Mehrabani
Afshin Mehrabani

Reputation: 34919

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.

Upvotes: 4

Related Questions