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.
May 18th, 2009 at 7:29 am
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
January 19th, 2010 at 11:53 am
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!
February 11th, 2010 at 12:27 pm
Thanks Olivier! I would never imagine that the name of MySQLdb api in CentOS is like MySQL-python. It solved my problem! Great!
March 20th, 2010 at 10:38 pm
I was getting similar error, Installing python-devel fixed it for me.
Thanks
March 22nd, 2010 at 5:03 am
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
March 22nd, 2010 at 12:45 pm
Make sure you have installed python-devel (as the blog post says)
May 31st, 2010 at 2:09 am
You may also have to install mysql-devel — this was my issue (on CentOS 5.5).