linux python 安装MySQLdb

Posted wingooom

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux python 安装MySQLdb相关的知识,希望对你有一定的参考价值。

每次安装python的mysqldb模块都贼费劲,这次把一些要点记下来。

Centos6已经安装了mysql,mysql命令本身是好使的。但是每次安装python的MySQLdb模块都有问题。而且yum每次都因为python版本问题不能使用

安装MySQLdb模块

1、下载MySQL-python-1.2.3.tar.gz

# tar -zxvf MySQL-python-1.2.3.tar.gz
# cd MySQL-python-1.2.3

2、修改site.cfg

mysql_config = /usr/local/mysql/bin/mysql_config

若跳过第三步,直接编译运行,则在导入MySQLdb时会报错

ImportError: libmysqlclient_r.so.15: cannot open shared object file: No such file or directory

解决办法就是第三步
3、libmysqlclient

查找 libmysqlclient(因为机器已经装过mysql),可能会存在两个,一个32位一个64位的,后面创建软连接时可以两个都试下,肯定有一个位数能对应上。

# find / -name libmysqlclient*

...
/usr/local/mysql/lib/mysql/libmysqlclient_r.so.15
/usr/local/mysql/lib/libmysqlclient_r.so.15
...


# ll /usr/local/mysql/lib/mysql/libmysqlclient_r.so.15
/usr/local/mysql/lib/mysql/libmysqlclient_r.so.15 -> libmysqlclient_r.so.15.0.0

# ll /usr/local/mysql/lib/libmysqlclient_r.so.15
/usr/local/mysql/lib/libmysqlclient_r.so.15 -> libmysqlclient_r.so

创建软连接

ln -s /usr/local/mysql/lib/libmysqlclient_r.so  /usr/lib64/libmysqlclient_r.so.15

根据32位或64位,软连接到/usr/lib/ 或/usr/lib64/目录

若是位数不对应,会报错:
ImportError: libmysqlclient_r.so.15: wrong ELF class: ELFCLASS32

重新创建新的软连接,找到对应的版本就好了

4、编译安装

# python setup.py build
# python setup.py install

5、测试

# python
>>> import MySQLdb
>>>

完美!!

若是报错警告
UserWarning: Module _mysql was already imported from
则,换个目录执行python命令就行

问题

在apache上部署了flask的web框架,结果在导入我自己的mysql封装类的时候,居然报错。

问题一

[Wed Apr 18 20:39:18 2018] [error] [client 10.40.101.37] ExtractionError: Can't extract file(s) to egg cache, referer:
....

[Errno 13] Permission denied: '/root/.cache',

将目录/root/.cache权限设置为777,依然不好使。

解决

把egg格式转成目录

# cd /python-path/site-packages/

# mv MySQL_python-1.2.3-py2.7-linux-x86_64.egg foo.zip

# mkdir MySQL_python-1.2.3-py2.7-linux-x86_64.egg

# cd MySQL_python-1.2.3-py2.7-linux-x86_64.egg

# unzip ../foo.zip 

# rm ../foo.zip

结果,好使!

以上是关于linux python 安装MySQLdb的主要内容,如果未能解决你的问题,请参考以下文章

linux python 安装MySQLdb

python的MYSQLdb模块在linux环境下的安装

linux 安装python MySQLdb

Linux下安装MySQLdb模块

python2.7之MySQLdb模块 for linux安装

python MySQLdb Windows下安装教程及问题解决方法