I’m in the middle of moving OpenMRS’s web presence from a shared virtual machine to a new dedicated box.  The only trouble I ran into was with the mysql python module (again).

For posterity’s sake, I’m going to write my solution here.

easy_install mysql-python

I received this error when trying to install the MySQLdb-python module into python on centOS:

_mysql.c:2808: error: expected declaration specifiers before ‘init_mysql’
_mysql.c:2886: error: expected ‘{’ at end of input
error: Setup script exited with error: command ‘gcc’ failed with exit status 1

The fix I remembered.  I just had to install the python development packages:

yum install python-devel

I then had another very odd and strangely familiar error:

In file included from _mysql.c:35:
/usr/include/mysql/my_config.h:15:28: error: my_config_i386.h: No such file or directory
error: command ‘gcc’ failed with exit status 1

Googling around gave me nothing helpful…in fact the results looked strangely familiar as well.  I couldn’t remember the solution to this one though.

Eventually, I actually read the error message and realized that our new vm isn’t an x64 box.  For some reason there was a my_config_x64.h file in /usr/include/mysql but there wasn’t a my_config_i386.h.  Luckily, that file was present on the old server. Copying that file from /usr/include/mysql on the old box to the new was the cure.

This is in the babble category tagged as , , ,

7 comments »

7 Responses

  1. Olivier Biot Says:

    Thanks for this information!

    For the record, apparently the MySQLDB Python package in CentOS has a Mixed Case name: “MySQL-python”. The command to install this module on CentOS is:

    $ yum install MySQL-python

    Hope this helps!

    Olivier

  2. Evlilik Sitesi Says:

    Awesome awesome post!!!

    I’ve been trying to install mysqldb for the last hour on my centos box and had countless errors before I read the comment on this post. I had no clue I could yum MySQL-python.

    It worked like a charm. Thanks Olivier and eflow!

  3. Elchin J Says:

    Thanks Olivier! I would never imagine that the name of MySQLdb api in CentOS is like MySQL-python. It solved my problem! Great!

  4. kadimi Says:

    I was getting similar error, Installing python-devel fixed it for me.

    Thanks

  5. vinh Says:

    I had installed MySQL-python on using
    $ yum install MySQL-python
    but when i used command
    import MySQLdb. it still not library in my machine
    i use Linux CentOS and using x86_64
    Please help me by send email to me:
    tuanvinh100@gmail.com
    thanks so much

  6. Ben Says:

    Make sure you have installed python-devel (as the blog post says)

  7. DDevine Says:

    You may also have to install mysql-devel — this was my issue (on CentOS 5.5).

Leave a Comment




Your comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.