Python Flask项目部署Ubuntu服务器对接MySQL报500错误如何解决
问题根因
从给出的Apache错误日志可直接定位两个问题:
- 部署项目的Ubuntu服务器上,mod_wsgi对应的Python运行环境未安装MySQL连接依赖包
- dbconnect.py代码存在语法错误
解决方案
- 安装MySQL连接器依赖
优先确认服务器上mod_wsgi绑定的Python版本,执行对应安装命令:
若使用系统默认Python3:pip3 install mysql-connector-python
若项目使用独立虚拟环境,先激活对应虚拟环境后再执行上述安装命令,需保证安装依赖的Python路径和mod_wsgi配置中指定的Python路径完全一致,避免多版本Python导致的依赖找不到问题。 - 修复dbconnect.py代码错误
现有代码导入的模块命名空间为mysql.connector,调用时缺少前缀导致执行会抛出未定义错误,修改后代码如下:import mysql.connector def connection_db(): conn1 = mysql.connector.connect(host="localhost", user = "root", passwd = "pass", db = "db") c1 = conn1.cursor() return c1, conn1 - 重启服务生效
所有修改完成后执行命令重启Apache服务:systemctl restart apache2,重新访问页面验证即可。
额外安全提示
不要在业务代码中硬编码数据库明文账号密码,生产环境建议通过环境变量或者权限受限的独立配置文件读取配置,同时不要使用root账号作为业务连接数据库的账号,按需分配数据库账号的最小操作权限。
内容的提问来源于stack exchange,提问作者Csabatron99
相关产品推荐
相关产品推荐

