python 动态渲染 mysql 配置文件的示例
作者:蒋乐兴 发布时间:2024-01-26 05:15:20
标签:python,动态,渲染,MySQL,配置文件
背景
前段时间写了一个自动化安装 MySQL 的程序,其中有一个环节就是动态的渲染 my.cnf 文件;总的解决方案就是像 Django 渲染 html 页面一样,用渲染模板的方式来解决。
[mysqld]
basedir = {{basedir}}
datadir = {{datadir}}
port = {{port}}
user = {{user}}
代码实现
我在渲染引擎的选择上使用了 jinja2 这个模板引擎,去掉其它逻辑一个最小化的代码如下。
#!/usr/bin/env python3
from jinja2 import Environment,FileSystemLoader
def render_mysql_config_file():
#通过文件系统加载器,加载当前目录下的 my.cnf.jinja 模板文件
env = Environment(loader=FileSystemLoader(searchpath='./'))
tmpl = env.get_template('my.cnf.jinja')
#给要渲染的参数指定值
cnfs = {
'basedir': '/usr/local/mysql/',
'datadir': '/database/mysql/data/3306/',
'port': 3306,
'user'; 'mysql3306'
}
tmpl.globals=cnfs
#不保存到 /etc/my.cnf 了,直接输出到 stdout
print(tmpl.render())
if __name__ == "__main__":
render_mysql_config_file()
运行效果如下
python3 cnfs.py
[mysqld]
basedir = /usr/local/mysql/
datadir = /database/mysql/data/3306/
port = 3306
user = mysql3306
总结
通过模板引擎渲染 my.cnf 只要专参数就行了,非常的方便。
来源:https://www.sqlpy.com/blogs/402733201


猜你喜欢
- 问题:连续或者单个窗体,如何打印当前显示的记录?当前窗体还有对应的子窗体,也要一起打印出来我在一个窗体里有一个单号,大子窗体里有几组数据,我
- 而随着设备硬件配置的不断提升,对中小型应用程序来说,对算法的空间复杂度的要求也宽松了不少。不过,在当今 Web2.0 时代,对应用程序的时间
- 1.算法:(设查找的数组期间为array[low, high])(1)确定该期间的中间位置K(2)将查找的值T与array[k]比较。若相等
- 不过有一个简单的执行cmd命令方法: SQL> host net user User accounts for \\PC-ATQHJ4
- 那么Python如何快速上手?找来了一篇广受好评的新语言学习方法介绍,供大家参考。听说,你决定要为你的 “技能树” 再添加一门特定的编程语言
- 简单用py写了一个贪吃蛇游戏,有单人、双人模式,比较简单,适合初学者练手。基本上每行重要的语句都有注释,做了什么事一目了然这里先介绍单人模式
- Oracle数据库提供了几种不同的数据库启动和关闭方式,本文将详细介绍这些启动和关闭方式之间的区别以及它们各自不同的功能。 一、启动和关闭O
- 概述考虑这样一个问题,有hello.py脚本,输出”hello, world!”;有TestInput.py脚本,等待用户输入,然后打印用户
- 经常需要通过python代码来提取文本的关键词,用于文本分析。而实际应用中文本量又是大量的数据,如果使用单进程的话,效率会比较低,因此可以考
- 阅读对象:知道什么是restful,有了解swagger或者openAPI更佳。1.什么是restfulRepresentional Sta
- 验证码 在用户注册、登陆页面为了防止暴力请求,可以加入验证码。如果验证码错误,则不需要继续处理,可以减轻服务器的压力使用验证码也是一种有效防
- SAX是一种基于事件驱动的API。利用SAX解析XML文档牵涉到两个部分:解析器和事件处理器。解析器负责读取XML文档,并向事件处理器发送事
- numpy数组转置可以通过arr.T、arr.transpose()、arr.swapaxes()实现。数组转置 arr.T轴变换 arr.
- 前言在使用传统物理机或云服务器上部署项目都会存在一些痛点比如:项目部署速度慢、资源浪费、迁移难且扩展低而使用 Docker 部署项目的优势包
- Python heapq 详解Python有一个内置的模块,heapq标准的封装了最小堆的算法实现。下面看两个不错的应用。小顶堆
- 初步认识对于熟悉matplotlib三维画图的人来说,最常用的应该是plot_surface,但这个函数的绘图逻辑是,将xy平面映射到z轴,
- 一些很实用且必用的js小脚本代码:脚本1:进入页面后自动播放音乐或其它声音文件<embed src="音乐地址&q
- 本文列出了一些asp编程种可能会用到的正则表达式例子,大家可以方便的调用!如果您对asp种的正则表达式不是很了解可以看看这篇文章《ASP中R
- 实验原理模拟电脑通过串口与Arduino开发板通信,并通过网页实现简单交互开发环境1、Windows102、Python3.103、Prot
- 前言在之前写过一篇博客"关系数据库如何快速查询表的记录数",里面介绍了使用sp_spaceused查看表的记录数是否正确