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