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()
  • 相关阅读:
    Flask、Vue部署总结
    Recat教程(二)
    C第一个程序
    React教程(一)
    Flask+uwsgi+nginx 部署
    使用Dockerfile部署简单的应用
    Typescript搭建开发环境
    Typescript模块化/命名空间/装饰器
    Typescript的泛型/泛型接口
    修改git密码后,终端fatal: Authentication failed for'http://xxx/xxx.git'
  • 原文地址:https://www.cnblogs.com/t-ym/p/11824898.html
Copyright © 2011-2022 走看看