Installing mysql-python on Centos


I'm trying to get the MySQL-python lib installed on centos 5.5. I ran

sudo yum install MySQL-python

but then when I tried:

import MySQLdb

I get this error:

Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "MySQLdb/", line 22, in ?
    raise ImportError("this is MySQLdb version %s, but _mysql is version %r" %
ImportError: this is MySQLdb version (1, 2, 3, 'final', 0), \ # added linebreak
but _mysql is version (1, 2, 1, 'final', 1)

any clues on how to fix this?

12/7/2010 7:54:16 PM

Accepted Answer

You probably did not install MySQL via yum? The version of MySQLDB in the repository is tied to the version of MySQL in the repository. The versions need to match.

Your choices are:

  1. Install the RPM version of MySQL.
  2. Compile MySQLDB to your version of MySQL.
12/7/2010 7:53:10 PM

Step 1 - Install package

# yum install MySQL-python
Loaded plugins: auto-update-debuginfo, langpacks, presto, refresh-packagekit
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package MySQL-python.i686 0:1.2.3-3.fc15 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

 Package              Arch         Version                 Repository      Size
 MySQL-python         i686         1.2.3-3.fc15            fedora          78 k

Transaction Summary
Install       1 Package(s)

Total download size: 78 k
Installed size: 220 k
Is this ok [y/N]: y
Downloading Packages:
Setting up and reading Presto delta metadata
Processing delta metadata
Package(s) data still to download: 78 k
MySQL-python-1.2.3-3.fc15.i686.rpm                       |  78 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : MySQL-python-1.2.3-3.fc15.i686                               1/1 

  MySQL-python.i686 0:1.2.3-3.fc15                                              


Step 2 - Test working

import MySQLdb
db = MySQLdb.connect("localhost","myusername","mypassword","mydb" )
cursor = db.cursor()
cursor.execute("SELECT VERSION()")
data = cursor.fetchone()    
print "Database version : %s " % data    


Database version : 5.5.20 

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow