Heim >Backend-Entwicklung >Python-Tutorial >Einführung in das Beispiel des Beitritts zum Master-Slave-Synchronisationscluster mit der Python-MySQL-Bibliothek
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!