MySQLDB install Error:libmysqlclient_r.so.16: cannot open shared object

python连接MySql时出现的Error. 

出现原因:

    由于 /usr/local/lib/mysql 不在动态库默认搜索路径列表内,而mysql又装在此位置,生成的libmysqlclient_r.so.X 就不能被搜索到。


解决方案:

    把 /usr/local/lib/mysql 这个路径写进 /etc/ld.so.conf.d/mysql.conf  然后再ldconfig下即可

   echo "/usr/local/lib/mysql/ > /etc/ld.so.conf.d/mysql.conf
   ldconfig


关于/ld.so.conf.d 和 ldconfig

     默认动态库搜索路径为/lib 和 /usr/lib , 和/etc/ld.so.conf.d内所包含的目录,然后通过ldconfig来产生ld.so所需的缓存文件,缓存文件默认在/etc/ld.so.cache文件内。此文件包含了已经排好序的动态库列表。

     你可以使用ldconfig -p打印出当前cache所保存的所有共享库的名字。

^_^[root@:~]#ldconfig -p
1035 libs found in cache `/etc/ld.so.cache'
        libz.so.1 (libc6,x86-64) => /usr/lib64/libz.so.1
        libz.so.1 (libc6) => /usr/lib/libz.so.1
        libz.so (libc6,x86-64) => /usr/lib64/libz.so
        libz.so (libc6) => /usr/lib/libz.so
        libxslt.so.1 (libc6,x86-64) => /usr/lib64/libxslt.so.1
        libxslt.so.1 (libc6) => /usr/lib/libxslt.so.1
        libxslt.so (libc6,x86-64) => /usr/lib64/libxslt.so
        libxml2.so.2 (libc6,x86-64) => /usr/lib64/libxml2.so.2
        libxml2.so.2 (libc6) => /usr/lib/libxml2.so.2
        libxml2.so (libc6,x86-64) => /usr/lib64/libxml2.so
        libxml2.so (libc6) => /usr/lib/libxml2.so
        libxmlsec1.so.1 (libc6,x86-64) => /usr/lib64/lib

       通过 -v 参数显示扫描的动态库目录

^_^[root@:~]#ldconfig -v
ldconfig: Path `/usr/lib' given more than once
/usr/lib:
        libcupsimage.so.2 -> libcupsimage.so.2
        libbdevid.so.5.1.19.6 -> libbdevi




原文链接: http://blog.csdn.net/crazyjixiang/article/details/6749230

你可能感兴趣的:(MySQLDB install Error:libmysqlclient_r.so.16: cannot open shared object)