master

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', '')
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','')
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', '')
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','')
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()

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

  1. 使用python3脚本部署mariadb主从架构

    环境准备 一个脚本自动部署master服务 另一个部署slave服务 关闭主从节点的防火墙 以及事先设置好root远程登陆的权限. master import paramikossh=paramiko ...

  2. python3 自动部署MariaDB主从复制

    master import configparser import os def config_mariadb_yum(): exists = os.path.exists('/etc/yum.rep ...

  3. 使用python脚本部署mariadb主从架构

    环境准备 一个脚本自动部署master服务 另一个部署slave服务 关闭主从节点的防火墙 以及事先设置好root远程登陆的权限. grant all on *.* to root@'%'  iden ...

  4. python部署mariadb主从架构

    主机部署: import configparser import os def config_mariadb_yum(): exists = os.path.exists('/etc/yum.repo ...

  5. Mariadb 主从

    一 mariadb主从多用于网站架构,因为该主从的同步机制是异步的,数据的同步有一定延迟,也就是说有可能会造成数据的丢失,但是性能比较好,因此网站大多数用的是主从架构的数据库,读写分离必须基于主从架构 ...

  6. Docker部署Zabbix监控MariaDB主从同步(Percona Monitoring Plugins for Zabbix)

    一.安装Docker并部署Zabbix 建议先配置清华大学的docker-ce yum源,速度有保障:清华大学repo源 1.Zabbix Server节点配置 部署环境: [root@server0 ...

  7. MariaDB Galera Cluster 部署(如何快速部署 MariaDB 集群)

    MariaDB Galera Cluster 部署(如何快速部署 MariaDB 集群)  OneAPM蓝海讯通7月3日 发布 推荐 4 推荐 收藏 14 收藏,1.1k 浏览 MariaDB 作为 ...

  8. MariaDB Galera Cluster 部署(如何快速部署MariaDB集群)

    MariaDB Galera Cluster 部署(如何快速部署MariaDB集群) [日期:--] 来源:Linux社区 作者:Linux [字体:大 中 小] MariaDB作为Mysql的一个分 ...

  9. SaltStack入门篇(六)之部署Redis主从实现和Job管理

    一.部署Redis主从 需求: 192.168.56.11是主,192.168.56.12是从 redis监听自己的ip地址,而不是0.0.0.0 分析: linux-node1 安装 配置 启动 l ...

随机推荐

  1. 论文阅读笔记六十五:Enhanced Deep Residual Networks for Single Image Super-Resolution(CVPR2017)

    论文原址:https://arxiv.org/abs/1707.02921 代码: https://github.com/LimBee/NTIRE2017 摘要 以DNN进行超分辨的研究比较流行,其中 ...

  2. 微信小程序警告:Now you can provide attr "wx:key" for a "wx:for" to improve performance.

    那是因为在<block wx:for-items="{{imgUrls}}">中不存在wx:key="imgUrls"所以才导致报了个警告. 写成& ...

  3. 【oracle】 months_between(date1,date2)

    (20090228,20080228)====12 (20090228,20080229)====12 (20080229,20070228)====12 (20100331,20100228)=== ...

  4. js的call()方法

    // ① 当函数中没有this时,call().apply()和直接执行没有区别 function fn(){ console.log("aaa") } fn() // aaa f ...

  5. A1038 Recover the Smallest Number (30 分)

    一.技术总结 此问题是贪心类问题,给出可能有前导零的数字串,将他们按照某个顺序拼接,使生成的数最小. 解决方案,就是使用cmp函数,因为两两字符串进行拼接,进行排序从小到大. 拼接过后会有0可能出现在 ...

  6. Log-Structured Merge Tree (LSM Tree)

    一种树,适合于写多读少的场景.主要是利用了延迟更新.批量写.顺序写磁盘(磁盘sequence access比random access快). 背景 回顾数据存储的两个“极端”发展方向 加快读:加索引( ...

  7. ES6中ArrayBuffer与计算机字节序

    1.什么事字节序? 字节序指的是数值在内存中的表示方式. const buffer = new ArrayBuffer(16); const int32View = new Int32Array(bu ...

  8. Laravel关联模型中has和with区别

    本篇文章给大家带来的内容是关于Laravel关联模型中has和with区别(详细介绍),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 首先看代码: 1 2 3 4 5 6 $user ...

  9. sublime-text-3-build-3207 破解+注册码

    按照以下步骤依次进行 打开 https://hexed.it/ 单机 "Open file" 并选择 "sublime_text.exe" 可执行文件. 转到 ...

  10. C# 直接清空缓存方法

    注意要使用 HttpContext.Current.Cache.Remove(cacheKey); 不能使用 HttpRuntime.Cache[cacheKey]=null;