• 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()
  • 相关阅读:
    例子:动能并不是特别强(2-3)后,下M5的同时,也是恢复期到期的前一天
    .NET 自带的动态代理+Expression 实现AOP
    自旋锁-SpinLock(.NET 4.0+)
    使用Nito.AsyncEx实现异步锁
    C# 两行代码实现 延迟加载的单例模式(线程安全)
    C++ 用于大型程序的工具
    C++ 模板与泛型编程
    C++ 面向对象编程
    C++ 重载操作符与转换
    C++ 复制控制
  • 原文地址:https://www.cnblogs.com/t-ym/p/11824898.html
Copyright © 2020-2023  润新知