1. import configparser
  2. import os
  3. def config_mariadb_yum():
  4. exists = os.path.exists('/etc/yum.repos.d/mariadb.repo')
  5. if exists:
  6. print('mariadb.repo文件已经存在')
  7. yum_install_mariadb()
  8. else:
  9. config = configparser.ConfigParser()
  10. config.read('/etc/yum.repos.d/mariadb.repo', encoding='utf-8')
  11. config.add_section('mariadb')
  12. config.set('mariadb', 'name', 'MariaDB')
  13. config.set('mariadb', 'baseurl', 'http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos7-amd64/')
  14. config.set('mariadb', 'gpgkey', 'http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB')
  15. config.set('mariadb', 'gpgcheck', '1')
  16. config.write(open("/etc/yum.repos.d/mariadb.repo", "w"))
  17. yum_install_mariadb()
  18.  
  19. def yum_install_mariadb():
  20. res1 = os.system('yum install MariaDB -y > /dev/null 2&>1')
  21. if res1 == 0:
  22. config = configparser.ConfigParser()
  23. config.read('/etc/my.cnf.d/server.cnf', encoding='utf-8')
  24. config.set('server','server_id','1')
  25. config.set('server','log-bin','mysql-bin')
  26. config.write(open("/etc/my.cnf.d/server.cnf", "w"))
  27. res2 = os.system('service mariadb restart')
  28. if res2 == 0:
  29. os.system('mysql_secure_installation')
  30. os.system('''mysql -uroot -proot -e "grant replication slave on *.* to 'slave'@'%' identified by 'slave'"''')
  31. os.system("mysql -uroot -proot -e 'show master status'")
  32.  
  33. def main():
  34. config_mariadb_yum()
  35. if __name__ == '__main__':
  36. main()
  37.  
  38. slave
  39.  
  40. import configparser
  41. import os
  42. master_ip = input('master_ip:').strip()
  43. log_file = input('log_file:').strip()
  44. pos = input('pos:').strip()
  45. def config_mariadb_yum():
  46. exists = os.path.exists('/etc/yum.repos.d/mariadb.repo')
  47. if exists:
  48. print('mariadb.repo文件已经存在')
  49. yum_install_mariadb()
  50. else:
  51. config = configparser.ConfigParser()
  52. config.read('/etc/yum.repos.d/mariadb.repo', encoding='utf-8')
  53. config.add_section('mariadb')
  54. config.set('mariadb', 'name', 'MariaDB')
  55. config.set('mariadb', 'baseurl', 'http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos7-amd64/')
  56. config.set('mariadb', 'gpgkey', 'http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB')
  57. config.set('mariadb', 'gpgcheck', '1')
  58. config.write(open("/etc/yum.repos.d/mariadb.repo", "w"))
  59. yum_install_mariadb()
  60.  
  61. def yum_install_mariadb():
  62. res1 = os.system('yum install MariaDB -y > /dev/null 2&>1')
  63. if res1 == 0:
  64. config = configparser.ConfigParser()
  65. config.read('/etc/my.cnf.d/server.cnf', encoding='utf-8')
  66. config.set('server','server_id','2')
  67. config.write(open("/etc/my.cnf.d/server.cnf", "w"))
  68. res2 = os.system('service mariadb restart')
  69. if res2 == 0:
  70. os.system('mysql_secure_installation')
  71. 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))
  72. os.system("mysql -uroot -proot -e 'start slave;'")
  73.  
  74. def main():
  75. config_mariadb_yum()
  76. if __name__ == '__main__':
  77. main()

  

python—mariadb自动部署主从的更多相关文章

  1. python 实现自动部署测试环境

    预设条件 产品运行在Linux CentOS6 X64上 python3,Djanggo,Cherrypy安装好手动安装过程 登录服务器 检查是否有以前的版本的产品在运行,有,停掉 如果有原来的代码包 ...

  2. Python Fabric远程自动部署简介

    Fabric是一个Python(2.5-2.7)库,用于简化使用SSH的应用程序部署或系统管理任务. 它提供的操作包括:执行本地或远程shell命令,上传/下载文件,以及其他辅助功能,如提示用户输入. ...

  3. 最新JetBrainsPyCharm自动部署Python(Django,tornado等)项目至远程服务器

    每次开发Python项目时,对于所有Python开发人员来说,最枯燥的不是修改代码,而是实时将自己的代码上传至远程服务器,进行测试或者部署,本人最初开发也是这样,通过使用Xshell 5,WinSCP ...

  4. nginx tomcat 自动部署python脚本【转】

    #!/usr/bin/env python #--coding:utf8-- import sys,subprocess,os,datetime,paramiko,re local_path='/ho ...

  5. 使用Docker构建持续集成与自动部署的Docker集群

    为什么使用Docker " 从我个人使用的角度讲的话  部署来的更方便 只要构建过一次环境 推送到镜像仓库 迁移起来也是分分钟的事情 虚拟化让集群的管理和控制部署都更方便 hub.docke ...

  6. 使用Ansible进行项目的自动部署(Tomcat、Weblogic)

    原文:https://github.com/x113773/testall/issues/4 问题:Weblogic/Tomcat 通过JAVA直接远程调用或者调用本地Shell还是通过Ansible ...

  7. 使用Jenkins自动部署博客

    title: 使用Jenkins自动部署博客 toc: true comment: true date: 2017-12-17 19:48:10 tags: ['Jenkins', 'CI'] cat ...

  8. jenkins+supervisor实现django项目的自动部署(ubuntu)

    没有安装supervisor的话首先安装supervisor, apt install upservisor 安装supervisor大概率会出现问题,不推荐,最好是用pip 安装, 注意python ...

  9. 持续集成之Jenkins自动部署war包到远程服务器

    一.无war包链接的情况 无war包链接时,需先下载war包到本地,然后执行: ---------------------------------------------以下部分为转载-------- ...

随机推荐

  1. hibernate之小白一

    关于hibernate框架,以下是我自己的见解,每个人的理解各不同,希望各位读者根据自己的需要来查询自己想要的.以下我来给你们分享我学习hibernate的一些理论和实践: 首先我们来了解一下hibe ...

  2. 算法学习之剑指offer(五)

    题目1 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. public class Solution ...

  3. 微信小程序与用户交互

    微信小程序与用户交互 一.显示消息提示框 wx.showToast({属性名:属性值}) 自定义一个提示框,时间到了会自动关闭 wx.showToast({ title:"成功", ...

  4. 一次看懂 Https 证书认证

    TLS 传输层安全性协定 TLS(Transport Layer Security),及其前身安全套接层 SSL(Secure Sockets Layer)是一种安全协议,目的是为网际网路通信,提供安 ...

  5. Spring Boot2 系列教程(十五)定义系统启动任务的两种方式

    在 Servlet/Jsp 项目中,如果涉及到系统任务,例如在项目启动阶段要做一些数据初始化操作,这些操作有一个共同的特点,只在项目启动时进行,以后都不再执行,这里,容易想到web基础中的三大组件( ...

  6. Jackson替换fastjson

    为什么要替换fastjson 工程里大量使用了fastjson作为序列化和反序列化框架,甚至ORM在处理部分字段也依赖fastjson进行序列化和反序列化.那么作为大量使用的基础框架,为什么还要进行替 ...

  7. 3M隔音耳罩拆分、清洗教程

    简介 3M隔音耳罩用起来真爽,十分适合喜欢安静的人.再者,被动和别人同住(学校.厂里宿舍.公司宿舍).公共场合时使用,效果刚刚的.题外话:有些人的素质……%¥%(*¥*! 3M隔音耳罩平时戴着也没觉得 ...

  8. .NET Core 3.0之深入源码理解ObjectPool(二)

    写在前面 前文主要介绍了ObjectPool的一些理论基础,本文主要从源码角度理解Microsoft.Extensions.ObjectPool是如何实现的.下图为其三大核心组件图: 核心组件 Obj ...

  9. VirtualBox NAT Network配置

    VirtualBox NAT Network配置(OSX上的) VirtualBox的5种连接方式 NAT :虚拟机之间不能互通 NAT网络 :本文对象 桥接 :一般情况下虚拟机无法设置静态IP,并且 ...

  10. 使用Apache common 的csv工具包处理csv文件

    1.向csv文件中追加数据 //向文件中追加数据 BufferedWriter csvBufferedWriter = new BufferedWriter(new OutputStreamWrite ...