python 动态渲染 mysql 配置文件的示例

作者:蒋乐兴 时间:2024-01-26 05:15:20 

背景

前段时间写了一个自动化安装 MySQL 的程序,其中有一个环节就是动态的渲染 my.cnf 文件;总的解决方案就是像 Django 渲染 html 页面一样,用渲染模板的方式来解决。


[mysqld]
basedir = {{basedir}}
datadir = {{datadir}}
port  = {{port}}
user  = {{user}}

python 动态渲染 mysql 配置文件的示例

代码实现

我在渲染引擎的选择上使用了 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

标签:python,动态,渲染,MySQL,配置文件
0
投稿

猜你喜欢

  • Python数据提取-lxml模块

    2022-04-03 15:15:19
  • Bootstrap弹出带合法性检查的登录框实例代码【推荐】

    2024-04-16 08:49:54
  • python编写计算器功能

    2022-10-29 14:07:33
  • Ajax的错误处理机制探讨

    2007-09-07 09:53:00
  • Sql Server中的视图介绍

    2024-01-14 14:31:22
  • python实现用户答题功能

    2022-01-05 21:38:02
  • js判断文件是否为utf-8编码的方法

    2024-04-22 13:06:51
  • python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)

    2022-07-07 17:14:01
  • Python实现随机森林回归与各自变量重要性分析与排序

    2023-05-04 05:52:21
  • ASP trim,ltrim,rtrim 去前后空格 函数

    2011-03-03 10:39:00
  • python3实现指定目录下文件sha256及文件大小统计

    2023-11-26 15:37:00
  • 自动备份mssql server数据库并压缩的批处理脚本

    2024-01-24 00:30:11
  • JavaScript的事件机制详解

    2024-05-03 15:58:45
  • asp.net中文件下载功能的实例代码

    2023-07-20 15:46:51
  • python list转置和前后反转的例子

    2022-04-26 10:39:55
  • python实现有效的括号判断实例代码

    2023-11-24 14:40:34
  • Python实现文字pdf转换图片pdf效果

    2021-03-10 23:20:03
  • 详解用Python爬虫获取百度企业信用中企业基本信息

    2022-07-27 18:49:52
  • JMeter对MySQL数据库进行压力测试的实现步骤

    2024-01-28 18:26:55
  • vue判断input输入内容全是空格的方法

    2024-04-09 10:48:01
  • asp之家 网络编程 m.aspxhome.com