Heim >Backend-Entwicklung >Python-Tutorial >Einführung in das Beispiel des Beitritts zum Master-Slave-Synchronisationscluster mit der Python-MySQL-Bibliothek

Einführung in das Beispiel des Beitritts zum Master-Slave-Synchronisationscluster mit der Python-MySQL-Bibliothek

高洛峰
高洛峰Original
2017-03-22 10:06:111220Durchsuche

Das Skript kann auf jedem Computer ausgeführt werden (MySQL muss installiert sein, zumindest der MySQL-Client, MySQL kann nur Version 5.6 und höher sein). Geben Sie zuerst die Quell-IP ein und prüfen Sie, ob MySQL auf der Quell-IP normal läuft , und führen Sie es dann auf diesem Computer aus. Erstellen Sie einen Dump der MySQL-Datenbank, übertragen Sie dann die Dump-Datei auf den Zielserver, importieren Sie die Datenbank auf dem Zielserver und fügen Sie schließlich die Slave-Datenbank dem aktiven Cluster hinzu.

[root@master test]# cat finaly_mysql.py

#!/usr/bin/env python

#-*- programming: utf-8 -*-

Import MySQLdb, socket, paramiko,sys, os, datetime, time

sour_db=raw_input('bitte geben Sie die Quell-MySQL-Datenbank-IP ein:')

dest_db=raw_input ('Bitte geben Sie die Ziel-MySQL-Datenbank-IP ein:')

password=raw_input('Bitte geben Sie das Sour_db-Root-Benutzerkennwort ein:')

def check_port(ip,port):

print „testen Sie, ob die MySQL-Quelldatenbank läuft!“

res=socket.socket(socket.AF_INET, socket.SOCK_STREAM)

res.settimeout(3)

Versuchen Sie:

res.connect((ip,port))

print 'Server port 3306 OK!'

print("

dest_dir='/tmp'

import_command = "mysql -uroot -pleyou < /tmp/dump.sql"

print ' begin import dump file , es kann lange dauern Zeit, bitte haben Sie etwas Geduld !!!'

versuchen Sie:

ssh =paramiko.SSHClient ()

ssh.load_system_host_keys ()

ssh.connect (Hostname =dest_db,username ='root',password =password)

stdin, stdout, stderr = ssh.exec_command (import_command)

print stderr.read ()

ssh.close ()

außer Exception,e:

print Exception,":",e

print "import over"

#import Zuvor haben wir alle Slaves von dest_db gestoppt, weil wir den Status von dest_db nicht kennen. Möglicherweise war es zuvor eine Master-Datenbank oder es war eine Slave-Datenbank anderer Maschinen.

def final_check_mysql ():

print " "

print "finally check mysql service "

status = True

try:

conn=MySQLdb.connect(host=dest_db,user='root',passwd='Xp29at5F37',db='test')

conn=conn.cursor()

                                                                                                         Cur1.close()

                                                                     cur3.close()          10 Sekunden; "

. time.sleep(10)

                                                                                                     result = cur2.fetchall()

                 io_thread= result[0][10]

            sql_thread=. result[0][11]

                                                     _thread,sql_thread

Wenn IO_THREAD == "YES" und SQL_THREAD == "YES":

PRINT 'MySQL MASTER/SLAVE-Replikationsstatus ist erfolgreich'

Drucken ' MySQL Master/Slave-Replikation fehlgeschlagen, bitte überprüfen.'

                                                                                                                                          . Drucken Ausnahme ,“

Das obige ist der detaillierte Inhalt vonEinführung in das Beispiel des Beitritts zum Master-Slave-Synchronisationscluster mit der Python-MySQL-Bibliothek. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn