파이썬 배포 mariadb 마스터 - 슬레이브 아키텍처

배포 호스트 :

수입 configparser의
 수입 운영 체제

데프 config_mariadb_yum () :
EXISTS = os.path.exists ( ' /etc/yum.repos.d/mariadb.repo ' )
 IF가 존재합니다
 인쇄 ( ' mariadb.repo 파일이 이미 존재 ' )
yum_install_mariadb ()
다른 사람 :
구성 = configparser.ConfigParser ()
config.read ( ' /etc/yum.repos.d/mariadb.repo ' 코딩 = " UTF-8 " )
config.add_section ( ' mariadb ' )
config.set ( ' mariadb ' , ' 이름 ' , ' MariaDB ' )
config.set ( ' mariadb ' , ' base을 ' , ' 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 (오픈 ( " /etc/yum.repos.d/mariadb.repo " , " w " ))
yum_install_mariadb ()

데프 yum_install_mariadb () :
RES1 = os.system을 ( ' 얌 설치 MariaDB -y> / 디바이스 / 널 2> 1 ' )
 의 경우 RES1 == 0 :
구성 = configparser.ConfigParser ()
config.read ( ' /etc/my.cnf.d/server.cnf ' 코딩 = " UTF-8 " )
config.set ( ' 서버 ' , ' SERVER_ID ' , ' 1 ' )
config.set ( ' 서버 ' , ' 로그 빈 ' , ' MySQL의-빈 ' )
config.write (오픈 ( " /etc/my.cnf.d/server.cnf " , " w " ))
RES2 = os.system을 ( ' 서비스 mariadb 재시작 ' )
 의 경우 RES2 == 0 :
os.system을 ( ' mysql_secure_installation ' )
os.system을은 ( '' ' mysql을 -uroot -proot -e "*에 부여 복제 노예. *에'노예 '@'% 슬레이브 '식별' '' '' ' )
os.system을 ( " MySQL은 -uroot -proot -e '쇼 마스터 상태' " )

데프 주 () :
config_mariadb_yum ()
경우  __name__ == ' __main__ ' :
본관()

 

슬레이브 배포 :

 

수입 configparser의
 수입 운영 체제
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()

 

 

추천

출처www.cnblogs.com/t-ym/p/11824898.html