CentOS 5.1 ships with MySQL-python-1.2.1-1 available. The Django documentation specifies a minimum version of 1.2.1-p2 and indeed, syncdb will fail with the stock CentOS package. As of this writing, 1.2.2 is the latest available and will be the version we install. The easy route is to grab the source and compile it. Unfortunately, that leaves us hosed in the way of RPM dependencies. Instead, we will build our own RPM using the latest CentOS package and the latest source tarball. Before doing anything else, install or update the following packages: $ yum -y install mysql mysql-devel mysql-server python python-devel rpm-build rpm-devel Now, grab the latest SRPM of MySQL-python for CentOS from http://mirror.centos.org/centos/5.1/os/SRPMS/MySQL-python-1.2.1-1.src.rpm Open a terminal and log in as superuser (su -). Extract the SRPM contents with this command: $ rpm -Uvh MySQL-python-1.2.1-1.src.rpm Then change into the extract location and list its contents: $ cd /usr/src/redhat $ ls BUILD RPMS SOURCES SPECS SRPMS The tar.gz resides in the SOURCES directory. We want to place the newer one there too. Download MySQL-python-1.2.2.tar.gz from the project's SourceForge home [http://sourceforge.net/projects/mysql-python/] and copy it to the SOURCES directory now. For example, if you downloaded to /tmp you would use this command: $ cp /tmp/MySQL-python-1.2.2.tar.gz /usr/src/redhat/SOURCES/MySQL-python-1.2.2.tar.gz Now, edit the spec file to use the new source tarball: $ vi SPECS/MySQL-python.spec Change the Version string from 1.2.1 to 1.2.2 and save the file. You should end up with something like this: # Python major version. %{expand: %%define pyver %(python -c 'import sys;print(sys.version[0:3])')} Summary: An interface to MySQL Name: MySQL-python Version: 1.2.2 Release: 1 License: GPL Group: Development/Libraries [ more... ] Further down in the spec file, there are three lines that you should comment out to avoid errors from rpmbuild. There is no need to package the object files referenced. Change the following: /usr/%{_lib}/python%{pyver}/site-packages/MySQLdb/*.pyo /usr/%{_lib}/python%{pyver}/site-packages/MySQLdb/constants/*.pyo /usr/%{_lib}/python%{pyver}/site-packages/*.pyo To: #/usr/%{_lib}/python%{pyver}/site-packages/MySQLdb/*.pyo #/usr/%{_lib}/python%{pyver}/site-packages/MySQLdb/constants/*.pyo #/usr/%{_lib}/python%{pyver}/site-packages/*.pyo Now, build the RPM using the following command (you may need to be connected to the internet for the automated download of setuptools): $ rpmbuild -ba -v SPECS/MySQL-python.spec The new RPM is now available in the RPMS directory. To install, run the command (substituting your architecture): $ rpm -i RPMS/x86_64/MySQL-python-1.2.2-1.x86_64.rpm Django will now be able to use MySQL databases.