zoukankan      html  css  js  c++  java
  • 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()

    从机部署:

    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()
  • 相关阅读:
    1012 The Best Rank (25 分)(排序)
    1011. World Cup Betting (20)(查找元素)
    1009 Product of Polynomials (25 分)(模拟)
    1008 Elevator (20 分)(数学问题)
    1006 Sign In and Sign Out (25 分)(查找元素)
    1005 Spell It Right (20 分)(字符串处理)
    Kafka Connect 出现ERROR Failed to flush WorkerSourceTask{id=local-file-source-0}, timed out while wait
    flume、kafka、avro组成的消息系统
    Java23种设计模式总结【转载】
    Java编程 思维导图
  • 原文地址:https://www.cnblogs.com/t-ym/p/11824898.html
Copyright © 2011-2022 走看看