PythonMySQLdb ImportError: libperconaserverclient.so

Posted poorX

tags:

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

安装完MySQLdb无法使用

Traceback (most recent call last):
File "test.py", line 10, in <module>
import MySQLdb as mysql
File "/usr/lib64/python2.7/site-packages/MySQLdb/__init__.py", line 19, in <module>
import _mysql
ImportError: libperconaserverclient.so.20: cannot open shared object file: No such file or directory

 

查看安装日志

cat MySQL_python-1.2.5-py2.7.egg-info/SOURCES.txt

"""
GPL-2.0
HISTORY
INSTALL
MANIFEST.in
README.md
_mysql.c
_mysql_exceptions.py
metadata.cfg
pymemcompat.h
setup.cfg
setup.py
setup_common.py
setup_posix.py
setup_windows.py
site.cfg
MySQL_python.egg-info/PKG-INFO
MySQL_python.egg-info/SOURCES.txt
MySQL_python.egg-info/dependency_links.txt
MySQL_python.egg-info/top_level.txt
MySQLdb/__init__.py
MySQLdb/connections.py
MySQLdb/converters.py
MySQLdb/cursors.py
MySQLdb/release.py
MySQLdb/times.py
MySQLdb/constants/CLIENT.py
MySQLdb/constants/CR.py
MySQLdb/constants/ER.py
MySQLdb/constants/FIELD_TYPE.py
MySQLdb/constants/FLAG.py
MySQLdb/constants/REFRESH.py
MySQLdb/constants/__init__.py
doc/FAQ.rst
doc/MySQLdb.constants.rst
doc/MySQLdb.rst
doc/_mysql.rst
doc/_mysql_exceptions.rst
doc/conf.py
doc/index.rst
doc/modules.rst
doc/user_guide.rst
doc/_build/_sources/FAQ.txt
doc/_build/_sources/MySQLdb.constants.txt
doc/_build/_sources/MySQLdb.txt
doc/_build/_sources/_mysql.txt
doc/_build/_sources/_mysql_exceptions.txt
doc/_build/_sources/distribute_setup.txt
doc/_build/_sources/index.txt
doc/_build/_sources/modules.txt
doc/_build/_sources/setup.txt
doc/_build/_sources/setup_common.txt
doc/_build/_sources/setup_posix.txt
doc/_build/_sources/setup_windows.txt
doc/_build/_sources/user_guide.txt
tests/capabilities.py
tests/configdb.py
tests/dbapi20.py
tests/test_MySQLdb_capabilities.py
tests/test_MySQLdb_dbapi20.py
tests/test_MySQLdb_nonstandard.py
"""

 

找到_mysql.so

ld _mysql.so

"""
ld: warning: libperconaserverclient.so.20, needed by _mysql.so, not found (try using -rpath or -rpath-link)
ld: warning: cannot find entry symbol _start; not setting start address
_mysql.so:对‘mysql_field_count@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_ssl_set@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_get_character_set_info@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_rollback@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_shutdown@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_init@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_server_end@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_real_connect@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_commit@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_select_db@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_get_client_info@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_data_seek@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_stat@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_errno@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_use_result@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_thread_safe@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_autocommit@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_num_fields@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_free_result@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_num_rows@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_kill@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_thread_id@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_real_query@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_insert_id@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_set_character_set@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_get_host_info@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_next_result@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_fetch_row@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_dump_debug_info@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_row_tell@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_fetch_lengths@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_get_proto_info@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_options@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_escape_string@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_row_seek@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_change_user@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_debug@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_sqlstate@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_affected_rows@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_fetch_fields@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_character_set_name@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_warning_count@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_set_server_option@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_server_init@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_error@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_real_escape_string@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_get_server_info@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_close@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_ping@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_info@libperconaserverclient_20.0’未定义的引用
_mysql.so:对‘mysql_store_result@libperconaserverclient_20.0’未定义的引用
"""


# 解决
ln -s /usr/lib64/mysql/libperconaserverclient.so /usr/lib64/libperconaserverclient.so

 

以上是关于PythonMySQLdb ImportError: libperconaserverclient.so的主要内容,如果未能解决你的问题,请参考以下文章

Python MySQLdb - 类中的连接

Python MySQLDB:在列表中获取 fetchall 的结果

python 2.7.10 找不到 libmysqlclient.18.dylib 解决方案

Python MySQLdb 日期时间值不正确:'2018-03-25 02:00:02'

为啥 django 和 python MySQLdb 每个数据库有一个游标?

Python MySQLdb/mysqlclient:绑定命名集(或元组或列表)作为参数