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()
复制代码

 

posted @   力王7314  阅读(846)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示