How can I install the MySQLdb module for Python using pip?

2

20 Answers

It's easy to do, but hard to remember the correct spelling:

pip install mysqlclient 

If you need 1.2.x versions (legacy Python only), use pip install MySQL-python

Note: Some dependencies might have to be in place when running the above command. Some hints on how to install these on various platforms:

Ubuntu 14, Ubuntu 16, Debian 8.6 (jessie)

sudo apt-get install python-pip python-dev libmysqlclient-dev 

Fedora 24:

sudo dnf install python python-devel mysql-devel redhat-rpm-config gcc 

Mac OS

brew install mysql-connector-c 

if that fails, try

brew install mysql 
13

Starting from a fresh Ubuntu 14.04.2 system, these two commands were needed:

 apt-get install python-dev libmysqlclient-dev pip install MySQL-python 

Just doing the "pip install" by itself did not work.

From

6

First

pip install pymysql 

Then put the code below into __init__.py (projectname/__init__.py)

import pymysql pymysql.install_as_MySQLdb() 

My environment is (python3.5, django1.10) and this solution works for me!

Hope this helps!!

3

I had problems installing the 64-bit version of MySQLdb on Windows via Pip (problem compiling sources) [32bit version installed ok]. Managed to install the compiled MySQLdb from the .whl file available from

The .whl file can then be installed via pip as document in

For example if you save in C:/ the you can install via

pip install c:/MySQL_python-1.2.5-cp27-none-win_amd64.whl

Follow-up: if you have a 64bit version of Python installed, then you want to install the 64-bit AMD version of MySQLdb from the link above [i.e. even if you have a Intel processor]. If you instead try and install the 32-bit version, I think you get the unsupported wheel error in comments below.

4

well this worked for me:

pip install mysqlclient 

this is for python 3.x

2

Go to pycharm then go to default setting --> pip (double click) -- pymsqldb..-- > install --after installing use in a program like this

import pymysql as MySQLdb # Open database connection db = MySQLdb.connect("localhost","root","root","test" ) # prepare a cursor object using cursor() method cursor = db.cursor() # execute SQL query using execute() method. cursor.execute("show tables") # Fetch a single row using fetchone() method. data = cursor.fetchall() print (data) # disconnect from server db.close() 
1

I tried all the option but was not able to get it working on Redhat platform. I did the following to make it work:-

yum install MySQL-python -y 

Once the package was installed was able to import module as follows in the interpreter:-

>>> import MySQLdb >>> 
2

Many of the given answers here are quite confusing so I will try to put it simply. It helped me to install this

pip install pymysql 

and then use the following command in the python file

import pymysql as MySQLdb 

This way you can use MySQLdb without any problems.

If you are unable to install mysqlclient you can also install pymysql:

pip install pymysql

This works same as MySqldb. After that use pymysql all over instead of MySQLdb

1

If you are use Raspberry Pi [Raspbian OS]

There are need to be install pip command at first

apt-get install python-pip 

So that just install Sequently

apt-get install python-dev libmysqlclient-dev apt-get install python-pip pip install MySQL-python 
1

enter image description here

You can go to this website to download the package.

0

I had the same problem too.Follow these steps if you are on Windows. Go to: 1.My Computer 2.System Properties 3.Advance System Settings 4. Under the "Advanced" tab click the button that says "Environment Variables" 5. Then under System Variables you have to add / change the following variables: PYTHONPATH and Path. Here is a paste of what my variables look like: python path:

C:\Python27;C:\Python27\Lib\site-packages;C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib\lib-tk;C:\Python27\Scripts 

path:

C:\Program Files\MySQL\MySQL Utilities 1.3.5\;C:\Python27;C:\Python27\Lib\site-packages;C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib\lib-tk;C:\Python27\Scripts 

See this link for reference

If you have Windows installed on your system then type the following command on cmd :

pip install mysql-connector 

if the above command does not work try using:

pip install mysql-connector-python 

Now,if the above commands do not get the work done, try using:

pip install mysql-connector-python-rf 

That's it you are good to go now.

The above answer is great, but there may be some problems when we using pip to install MySQL-python in Windows

for example,It needs some files that are associated with Visual Stdio .One solution is installing VS2008 or 2010……Obviously,it cost too much.

Another way is the answer of @bob90937 . I am here to do something to add.

with , u can download many Windows binaries of many scientific open-source extension packages for the official CPython distribution of the Python programming language.

Back to topic,we can choose the MySQL-python(py2) or Mysqlclient(py3) and use pip install to install. it gives us Great convenience!

For Python3 I needed to do this:

python3 -m pip install MySQL 

If pip3 isn't working, you can try:

sudo apt install python3-mysqldb 
1

pip install mysql-connector-python as noted in the documentation:

on RHEL 7:

sudo yum install yum-utils mariadb-devel python-pip python-devel gcc

sudo /bin/pip2 install MySQL-python

actually, follow @Nick T's answer doesn't work for me, i try apt-get install python-mysqldb work for me

root@2fb0da64a933:/home/test_scrapy# apt-get install python-mysqldb Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libmariadbclient18 mysql-common Suggested packages: default-mysql-server | virtual-mysql-server python-egenix-mxdatetime python-mysqldb-dbg The following NEW packages will be installed: libmariadbclient18 mysql-common python-mysqldb 0 upgraded, 3 newly installed, 0 to remove and 29 not upgraded. Need to get 843 kB of archives. After this operation, 4611 kB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 stretch/main amd64 mysql-common all 5.8+1.0.2 [5608 B] Get:2 stretch/main amd64 libmariadbclient18 amd64 10.1.38-0+deb9u1 [785 kB] Get:3 stretch/main amd64 python-mysqldb amd64 1.3.7-1.1 [52.1 kB] Fetched 843 kB in 23s (35.8 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package mysql-common. (Reading database ... 13223 files and directories currently installed.) Preparing to unpack .../mysql-common_5.8+1.0.2_all.deb ... Unpacking mysql-common (5.8+1.0.2) ... Selecting previously unselected package libmariadbclient18:amd64. Preparing to unpack .../libmariadbclient18_10.1.38-0+deb9u1_amd64.deb ... Unpacking libmariadbclient18:amd64 (10.1.38-0+deb9u1) ... Selecting previously unselected package python-mysqldb. Preparing to unpack .../python-mysqldb_1.3.7-1.1_amd64.deb ... Unpacking python-mysqldb (1.3.7-1.1) ... Setting up mysql-common (5.8+1.0.2) ... update-alternatives: using /etc/mysql/my.cnf.fallback to provide /etc/mysql/my.cnf (my.cnf) in auto mode Setting up libmariadbclient18:amd64 (10.1.38-0+deb9u1) ... Processing triggers for libc-bin (2.24-11+deb9u3) ... Setting up python-mysqldb (1.3.7-1.1) ... root@2fb0da64a933:/home/test_scrapy# python Python 2.7.13 (default, Nov 24 2017, 17:33:09) [GCC 6.3.0 20170516] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import MySQLdb >>> 

My environment are:

  • Windows 10 Pro,
  • Python 3.7 (python-3.7.1-amd64.exe),
  • MySQL 8.0 (mysql-installer-web-community-8.0.13.0.msi)

pip install mysqlclient-1.3.13-cp37-cp37m-win_amd64.whl

works for me.

import MySQLdb, sys # -------------------------------------------------- # Connect to MySQL # -------------------------------------------------- try: db = MySQLdb.connect(host="localhost", user="user", passwd="pass", db="database", charset='cp1251') except MySQLdb.Error as e: print ("Error %d: %s" % (e.args[0], e.args[1])) sys.exit() # Creating cursor cursor = db.cursor() 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy