mysql - 如何在 Ansible 中处理带有单引号的 SQL 查询
问题描述
我希望使用 Ansible 的命令模块触发 SQL INSERT 查询。
要插入数据库的数据存储在一个文件中,比如 tmpdata.txt
更多 tmpdata.txt
10.9.52.76:[u'12342 user1 -drwx file1','4433 user2 -drwx file2']
10.9.52.78:[u'12342 user1 -drwx file3','4433 user2 -drwx file2']
然后使用 Ansible 文件查找将 tmpdata.txt 的内容分配给名为 mydata 的 Ansible 变量。
然后我使用 Ansible 命令模块执行 SQL INSERT 语句来插入变量 mydata,该变量由于 SQL 数据的经典单引号问题而失败。
虽然我不确定处理数据是否有什么好的解决方案;我想从文件或变量中删除单引号应该有助于 SQL INSERT 成功。
谁能建议如何解决单引号问题?
解决方案
我发现以下单引号和双引号与转义字符一起工作的方法。
- name: CREATE {{ SQL_USER }}
shell:
cmd: "mysql -uroot -p{{ SQL_ROOT_PASSWORD }} -e\"CREATE USER IF NOT EXISTS '{{ SQL_USER }}'@'{{ SQL_IP }}' IDENTIFIED BY '{{ SQL_PASSWORD }}' REQUIRE SSL;\" -N -B"
register: CREATE_USER
- name: STDOUT CREATE_USER
debug:
msg: "{{ CREATE_USER.stdout_lines }}"
推荐阅读
- javascript - JavaScript insertAdjacentHTML 打开新模式不起作用
- python - 为什么在实例化 __repr__ 方法时会出现 SyntaxError
- asp.net-core - 如何将跨平台应用程序作为服务运行?
- cmd - 将 Name 和 GUID 都设置为变量 WMIC Product Get
- android - 无法以编程方式打开 GPS
- spring-boot - 在 Jenkins 中使用 Jmeter 进行负载测试时出现 SSL 握手异常
- reactjs - 未显示 React 组件中的 SVG
- mysql - 如何缩小旧项目的 mysql 数据库大小?
- r - 如何在r中绘制不同月份的比较
- processing - 我如何使玩家的移动功能只计算一次,以便他们可以一一执行?