Heroku部署Python Flask项目失败:缺失mariadb_config或MariaDB Connector/C
解决Heroku部署Flask项目时MariaDB Connector/C缺失的问题
方案1:通过Heroku Buildpack自动安装依赖
Heroku默认环境未预装MariaDB Connector/C,添加官方buildpack可自动处理依赖:
- 执行命令添加buildpack:
heroku buildpacks:add https://github.com/heroku/heroku-buildpack-mariadb - 重新推送代码到Heroku,buildpack会自动安装
mariadb_config及相关组件。
方案2:改用纯Python驱动(无需系统依赖)
若不想依赖系统级组件,替换为纯Python实现的MariaDB驱动:
- 修改
requirements.txt,替换原有MariaDB依赖:# 纯Python版mariadb连接器 mariadb-connector-python[pure] # 或用兼容的pymysql # pymysql - 若使用
pymysql且搭配SQLAlchemy,需在项目初始化代码中添加兼容配置:import pymysql pymysql.install_as_MySQLdb() - 重新推送代码即可,无需额外安装系统依赖。
方案3:手动指定mariadb_config路径(已安装依赖时)
若已通过其他方式安装Connector/C但路径未被识别,在Heroku中设置环境变量:
heroku config:set MARIADB_CONFIG=/app/.mariadb/bin/mariadb_config
路径需根据实际安装位置调整,上述为buildpack默认安装路径。
额外注意事项
- 确保Ubuntu虚拟机的MariaDB允许远程连接:修改
my.cnf(或mariadb.cnf)将bind-address设为0.0.0.0,并授权数据库用户GRANT ALL ON your_db.* TO 'your_user'@'%' IDENTIFIED BY 'your_password';。 - 虚拟机防火墙需开放3306端口,确保Heroku服务器能访问到远程数据库。
内容的提问来源于stack exchange,提问作者Bloome
相关产品推荐
相关产品推荐

