zoukankan      html  css  js  c++  java
  • python3 自动部署MariaDB主从复制

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

  • 相关阅读:
    [luogu4799 CEOI2015 Day2] 世界冰球锦标赛(折半搜索)
    [luogu3230 HNOI2013] 比赛 (搜索+Hash)
    [luogu2317 HNOI2005] 星际贸易 (dp)
    [luogu2414 NOI2011]阿狸的打字机 (AC自动机)
    [bzoj3507 Cqoi2014]通配符匹配 (hash+DP)
    [luogu2054 AHOI2005] 洗牌 (数论)
    bzoj1491 [NOI2007]社交网络
    bzoj1022 [SHOI2008]小约翰的游戏John
    bzoj1088 [SCOI2005]扫雷Mine
    bzoj1295 [SCOI2009]最长距离
  • 原文地址:https://www.cnblogs.com/du-z/p/11179487.html
Copyright © 2011-2022 走看看