我在Debian 11(bullseye)机器上编译并安装了Python 3.10.9(来自. tar)和mariadb-c-connector(来自官方Github repo)。ufw、fail2ban、mariadb服务器、mariadb客户端。
现在,如果我安装mariadb在我的Python pipenv和运行,我得到了错误:mariadb.OperationalError: This feature is not implemented or disabled
.
在我的manjaro上运行良好。这是我创建到数据库的连接的方法。
def connect(self):
if self.conn:
return
# Connect to MariaDB Platform
try:
self.conn = mariadb.connect(
user=self.user,
password=self.password,
host=self.host,
port=self.port,
database=self.database,
reconnect=True,
)
except mariadb.Error as e:
log.exception(f"Error connecting to MariaDB Platform: {e}")
self.conn = None
return
我做错了什么,还是缺少了什么?
先谢谢你。
编辑:mariadb_config --cc_version --libs
的输出
3.3.4
-L/usr/lib/mariadb/ -lmariadb
ldd /home/USER/.local/share/virtualenvs/PROJEKT/lib/python3.10/site-packages/mariadb/_mariadb.cpython-310-x86_64-linux-gnu.so
的输出
linux-vdso.so.1 (0x00007fffa2eec000)
libmariadb.so.3 => /lib/x86_64-linux-gnu/libmariadb.so.3 (0x00007f6911918000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f6911743000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f691173d000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f691171b000)
libssl.so.1.1 => /lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007f6911688000)
libcrypto.so.1.1 => /lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007f6911394000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f6911375000)
/lib64/ld-linux-x86-64.so.2 (0x00007f6911988000)
1条答案
按热度按时间cwxwcias1#
以下是检入源代码:
它失败了,因为mysql_optionsv不支持选项
MARIADB_OPT_STATUS_CALLBACK
并返回错误CR_NOT_IMPLEMENTED
。所以看起来你建造了(已安装)mariadb模块,具有所需的正确连接器/C版本(〉3.3.1),但是在默认库路径中有一个旧版本的Connector/C。MariaDB Server 10.5.18也安装了太旧的MariaDB Connector/C 3.1.18。如果在MariaDB Python模块之后安装它,Connector/C3.3安装可能已被覆盖。