python—mariadb自动部署主从
import configparser
import os
def config_mariadb_yum():
exists = os.path.exists('/etc/yum.repos.d/mariadb.repo')
if exists:
print('mariadb.repo文件已经存在')
yum_install_mariadb()
else:
config = configparser.ConfigParser()
config.read('/etc/yum.repos.d/mariadb.repo', encoding='utf-8')
config.add_section('mariadb')
config.set('mariadb', 'name', 'MariaDB')
config.set('mariadb', 'baseurl', 'http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos7-amd64/')
config.set('mariadb', 'gpgkey', 'http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB')
config.set('mariadb', 'gpgcheck', '1')
config.write(open("/etc/yum.repos.d/mariadb.repo", "w"))
yum_install_mariadb() def yum_install_mariadb():
res1 = os.system('yum install MariaDB -y > /dev/null 2&>1')
if res1 == 0:
config = configparser.ConfigParser()
config.read('/etc/my.cnf.d/server.cnf', encoding='utf-8')
config.set('server','server_id','1')
config.set('server','log-bin','mysql-bin')
config.write(open("/etc/my.cnf.d/server.cnf", "w"))
res2 = os.system('service mariadb restart')
if res2 == 0:
os.system('mysql_secure_installation')
os.system('''mysql -uroot -proot -e "grant replication slave on *.* to 'slave'@'%' identified by 'slave'"''')
os.system("mysql -uroot -proot -e 'show master status'") def main():
config_mariadb_yum()
if __name__ == '__main__':
main() slave import configparser
import os
master_ip = input('master_ip:').strip()
log_file = input('log_file:').strip()
pos = input('pos:').strip()
def config_mariadb_yum():
exists = os.path.exists('/etc/yum.repos.d/mariadb.repo')
if exists:
print('mariadb.repo文件已经存在')
yum_install_mariadb()
else:
config = configparser.ConfigParser()
config.read('/etc/yum.repos.d/mariadb.repo', encoding='utf-8')
config.add_section('mariadb')
config.set('mariadb', 'name', 'MariaDB')
config.set('mariadb', 'baseurl', 'http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos7-amd64/')
config.set('mariadb', 'gpgkey', 'http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB')
config.set('mariadb', 'gpgcheck', '1')
config.write(open("/etc/yum.repos.d/mariadb.repo", "w"))
yum_install_mariadb() def yum_install_mariadb():
res1 = os.system('yum install MariaDB -y > /dev/null 2&>1')
if res1 == 0:
config = configparser.ConfigParser()
config.read('/etc/my.cnf.d/server.cnf', encoding='utf-8')
config.set('server','server_id','2')
config.write(open("/etc/my.cnf.d/server.cnf", "w"))
res2 = os.system('service mariadb restart')
if res2 == 0:
os.system('mysql_secure_installation')
os.system('''mysql -uroot -proot -e "CHANGE MASTER TO MASTER_HOST='%s', MASTER_USER='slave', MASTER_PASSWORD='slave', MASTER_LOG_FILE='%s', MASTER_LOG_POS=%s"''' % (master_ip,log_file,pos))
os.system("mysql -uroot -proot -e 'start slave;'") def main():
config_mariadb_yum()
if __name__ == '__main__':
main()
python—mariadb自动部署主从的更多相关文章
- python 实现自动部署测试环境
预设条件 产品运行在Linux CentOS6 X64上 python3,Djanggo,Cherrypy安装好手动安装过程 登录服务器 检查是否有以前的版本的产品在运行,有,停掉 如果有原来的代码包 ...
- Python Fabric远程自动部署简介
Fabric是一个Python(2.5-2.7)库,用于简化使用SSH的应用程序部署或系统管理任务. 它提供的操作包括:执行本地或远程shell命令,上传/下载文件,以及其他辅助功能,如提示用户输入. ...
- 最新JetBrainsPyCharm自动部署Python(Django,tornado等)项目至远程服务器
每次开发Python项目时,对于所有Python开发人员来说,最枯燥的不是修改代码,而是实时将自己的代码上传至远程服务器,进行测试或者部署,本人最初开发也是这样,通过使用Xshell 5,WinSCP ...
- nginx tomcat 自动部署python脚本【转】
#!/usr/bin/env python #--coding:utf8-- import sys,subprocess,os,datetime,paramiko,re local_path='/ho ...
- 使用Docker构建持续集成与自动部署的Docker集群
为什么使用Docker " 从我个人使用的角度讲的话 部署来的更方便 只要构建过一次环境 推送到镜像仓库 迁移起来也是分分钟的事情 虚拟化让集群的管理和控制部署都更方便 hub.docke ...
- 使用Ansible进行项目的自动部署(Tomcat、Weblogic)
原文:https://github.com/x113773/testall/issues/4 问题:Weblogic/Tomcat 通过JAVA直接远程调用或者调用本地Shell还是通过Ansible ...
- 使用Jenkins自动部署博客
title: 使用Jenkins自动部署博客 toc: true comment: true date: 2017-12-17 19:48:10 tags: ['Jenkins', 'CI'] cat ...
- jenkins+supervisor实现django项目的自动部署(ubuntu)
没有安装supervisor的话首先安装supervisor, apt install upservisor 安装supervisor大概率会出现问题,不推荐,最好是用pip 安装, 注意python ...
- 持续集成之Jenkins自动部署war包到远程服务器
一.无war包链接的情况 无war包链接时,需先下载war包到本地,然后执行: ---------------------------------------------以下部分为转载-------- ...
随机推荐
- 【NOIP模拟赛】小奇挖矿 2
[题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿石交易市场,以便为飞船升级无限非概率引擎. [问题描述] 现在有m+1个星球,从左到右标号为0到m,小奇最初在0 ...
- CSS定位机制:浮动 float及清除浮动的常用方法
CSS的定位机制 1.普通流(标准流) 默认状态,元素自动从左往右,从上往下排列 块元素的特征: 独占一行 可以设置宽高 如果不设置宽度,宽度默认为容器的100% 常见的块元素:div p h1-h6 ...
- 算法学习之剑指offer(十)
一 题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100","5e2","-123","3 ...
- 不安分的管家——Jenkins
占个位,持续补充. 一.使用Jenkins进行自动化部署 一直以来关于xx框架/中间件的技术博客有个奇怪的事情.这类文章特点大而全,重复率高,读者阅读完毕基本从安装到放弃. 作为一个使用者,我只是为了 ...
- qt实现串口通讯
摘要:上位机软件程序通过QT实现,采集输入信息,根据实际需要做出合适的串口通讯协议,实现效果如下图所示: 主要实现的功能: 1.串口基本参数可选,可调 2.显示区域可选择十六进制/asicii码显示, ...
- WebSocket学习简书
1.什么是Websocket? WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议. 2.单工,半双工和全双工通信? 在单工通信中,通信的信道是单向的,发送端 ...
- Intellij IDEA 常用的插件 建议全装
介绍几个常用的插件 Alibaba Java Coding Guidelines https://plugins.jetbrains.com/plugin/10046-alibaba-java-cod ...
- [线段树系列] LCT打延迟标记的正确姿势
这一篇博客将教你什么? 如何用LCT打延迟标记,LCT和线段树延迟标记间的关系,为什么延迟标记要这样打. ——正片开始—— 学习这一篇博客前,确保你会以下知识: Link-Cut-Tree,普通线段树 ...
- OracleService服务不见了|OracleServiceXE服务没有了
服务里面本来应该有OracleService的(或者是Express版的OracleServiceXE),而服务列表没有此服务项,而启动数据库时出现: TNS监听程序当前无法识别连接描述符中请求的服务 ...
- 设计模式(十三)Visitor模式
Visitor模式可以用来把数据结构与处理分离开.通俗来说就是编写一个访问者类来访问数据结构中的元素,并把对各元素的处理交给访问者类.这样,当需要增加新的处理时,只需要编写新的访问者,然后让数据结构可 ...