Ansible执行mysql_db模块报错:已安装PyMySQL却提示依赖缺失
解决方案
确认root用户对应Python环境已全局安装PyMySQL
普通用户安装的PyMySQL默认存储在当前用户家目录的私有路径下,become: true切换到root后无法读取。如果你的Python3.9是手动编译安装而非系统默认版本,不要通过dnf安装python3-pymysql包,这类系统包只会适配系统默认的Python3.6,手动安装的Python无法识别,需使用对应版本的pip执行全局安装:sudo pip3.9 install pymysql若使用系统默认Python3.6,可直接执行系统包安装命令:
sudo dnf install python3-pymysql明确指定匹配的Python解释器路径
建议直接在mysql_db任务中绑定你安装了PyMySQL的Python绝对路径,避免全局指定解释器引发的适配问题,修改后的任务示例:- name: Create MySQL database mysql_db: name: somedbname encoding: utf8 collation: utf8_bin become: true vars: ansible_python_interpreter: /usr/bin/python3.9 # 替换为你实际安装了PyMySQL的Python绝对路径提前验证环境可用性
可在创建数据库任务前增加验证任务,确认become后的环境确实可以正常导入PyMySQL:- name: 验证PyMySQL可正常导入 command: /usr/bin/python3.9 -c "import pymysql" become: true changed_when: false该任务执行无报错后,再执行创建数据库的任务即可。
内容的提问来源于stack exchange,提问作者phd68lnx
相关产品推荐
相关产品推荐

