Arch Linux虚拟环境中无法安装Python的MariaDB Connector
解决方案
一、解决mysql-connector-python的排序规则错误
出现Unknown collation: 'utf8mb4_0900_ai_ci'是因为该驱动不识别MySQL 8.0引入的排序规则,针对MariaDB可采用以下方式处理:
- 方法1:修改连接参数
在数据库连接代码中指定兼容的排序规则,示例:import mysql.connector conn = mysql.connector.connect( host="localhost", user="你的用户名", password="你的密码", database="目标数据库", collation='utf8mb4_unicode_ci' ) - 方法2:升级驱动版本
激活虚拟环境后执行:pip install --upgrade mysql-connector-python - 方法3:替换为PyMySQL驱动
卸载原有驱动后安装兼容更好的PyMySQL:
连接示例:pip uninstall mysql-connector-python pip install pymysqlimport pymysql conn = pymysql.connect( host="localhost", user="你的用户名", password="你的密码", database="目标数据库", charset='utf8mb4' )
二、解决mariadb Python库的编译错误
编译时的lvalue required as left operand of assignment错误,根源是安装的mariadb==1.0.11版本过旧,不支持Python 3.12(Arch Linux默认Python版本较新),按以下步骤解决:
- 安装系统层面的MariaDB开发依赖
退出虚拟环境后执行系统命令:sudo pacman -S mariadb-libs mariadb-devel - 激活虚拟环境安装新版驱动
新版驱动已修复Python 3.12的编译兼容问题。source .venv/bin/activate pip install mariadb>=1.1.0
内容的提问来源于stack exchange,提问作者Syntax Error12
相关产品推荐
相关产品推荐

