本想在linux下安装一个mysqldb,用来让python能读写mysql,然后就遇到了一路的bug,在此和大家分享一下
系统环境
1.我买的是阿里云服务器(centos6.3),
2.机器本身自带了mysql,但是觉得mysql版本太低(自我感觉,不要吐槽),于是我就把mysql升级到5.6.1
3.python默认用的是2.6.6
安装
1.本想用yum来安装MySQL-python,结果,看中间带有mysql5.1的,于是我就放弃了,从这里开始了我的噩梦
我先去用wget http://sourceforge.net/projects/mysql-python/files/latest/download 下载了,最新的mysql-python
解压tar zxf MySQL-python-1.2.4b4.tar.gz
进入目录
2.python setup.py build 编译(注:有的网上到这一步就结束了,我就想,只是编译了,不安装怎么用,),
这个时候,有可能需要装setuptool,gcc,如果提示找不到类似mysqlclient的提示
大家可以执行
ln -s /usr/lib64/mysql/libmysqlclient.a /usr/lib/libmysqlclient.a
ln -s /usr/lib64/mysql/libmysqlclient_r.a /usr/lib/libmysqlclient_r.a
具体原因我也不是很清楚,其实如果能把默认目录换到/usr/lib64下,最好了
至于threadsafe也不用改成False
# The path to mysql_config.
# Only use this if mysql_config is not on your PATH, or you have some weird
# setup that requires it.
mysql_config = /usr/bin/mysql_config
把mysql_config这个目录换一下,可以用whereis mysq_config查找的

python setup.py install(还是需要这一步的,大家不要忘记了)
3.如果提示
如果提示这个的话,大家不用怕,我也从这里跌倒的
经查得知是由于编译Python所用的编译器与编译MySQL-python所用编译器不同所致。
用g++重新编译_mysql.so即可
如果发现你的机器没有g++或者用yum install g++不行的情况下
你需要yum install gcc-c++ libstdc++-devel这个就可以了
首先要进入mysql-python的build目录里,我的是2.6,你要根据自己的改一下
g++ -pthread -shared ./temp.linux-x86_64-2.6/_mysql.o -L/usr/lib64 -l mysqlclient_r -lpthread -lm -lrt -ldl -o ./lib.linux-x86_64-2.6/_mysql.so
然后重新编译就可以了