查询期间与MySQL服务器的连接丢失?Python和mysql
我一直在听python的端口。我在那个端口每分钟插入大约500个。当一次插入的数量增加时,它会发出此警告。程序停止工作。它不会插入新的传入数据 Python代码:查询期间与MySQL服务器的连接丢失?Python和mysql,python,mysql,optimization,Python,Mysql,Optimization,我一直在听python的端口。我在那个端口每分钟插入大约500个。当一次插入的数量增加时,它会发出此警告。程序停止工作。它不会插入新的传入数据 Python代码: import socket import MySQLdb import sys import thread import time from datetime import datetime, timedelta con = None dbhost = 'localhost' dbport = 3306 dbuser = "
import socket
import MySQLdb
import sys
import thread
import time
from datetime import datetime, timedelta
con = None
dbhost = 'localhost'
dbport = 3306
dbuser = ""
dbpass = ""
dbname = ""
class DB:
conn = None
def connect(self):
self.conn = MySQLdb.connect(dbhost, dbuser, dbpass, dbname)
def query(self, sql):
time.sleep(0.1)
try:
cursor = self.conn.cursor()
cursor.execute(sql)
except (AttributeError, MySQLdb.OperationalError):
self.connect()
cursor = self.conn.cursor()
cursor.execute(sql)
self.conn.commit()
self.conn.autocommit(True)
return cursor
def veritabani_islemleri(mesaj):
try:
parcala = mesaj.split("#")
i=0
j=len(parcala)
while i < (j-1):
table_list= parcala[i].split(";")
location= table_list[0].split(",")
if(location[0]=='$GEOLOC' and str(location[2])!='' and len(table_list)==14):
mesafe= table_list[13].split(",")
date_data= str(table_list[1])+" "+str(table_list[2])
data = datetime.strptime(date_data,'%d%m%Y %H%M%S')
data = data + timedelta(hours=3)
date_tim = data.strftime('%d-%m-%Y %H:%M:%S')
date_tim = data.strftime('%Y-%m-%d %H:%M:%S')
if(str(location[3])=='-' or str(location[3])=='2'):
cur = db.query('INSERT INTO table VALUES("%i","%i", "%s", "%s","%f","%f","%i","%i","%i","%i","%s","%s","%s","%i","%i")' % (int(location[2]),int(location[1]), 'GEO', date_tim,float(table_list[3][1:]),float(table_list[4][2:]),int(table_list[5]),int(table_list[6]),int(table_list[7]),int(table_list[8]),str(table_list[9]),str(table_list[10]),str(table_list[11]),int(table_list[12]),int(mesafe[0])))
if(int(location[2])==861359034946341):
cur = db.query('INSERT INTO gps_table( ) VALUES("%i","%i", "%s", "%s","%f","%f","%i","%i","%i","%i","%s","%s","%s","%i","%i")' % (123456,int(location[1]), 'GEO', date_tim,float(table_list[3][1:]),float(table_list[4][2:]),int(table_list[5]),int(table_list[6]),int(table_list[7]),int(table_list[8]),str(table_list[9]),str(table_list[10]),str(table_list[11]),int(table_list[12]),int(mesafe[0])))
elif(str(location[3])=='IX' or str(location[3])=='IO'):
cur = db.query('INSERT INTO table_stat() VALUES("%i", "%s", "%s","%f","%f","%i","%i","%i","%i","%s","%s","%s","%i","%i")' % (int(location[2]), str(location[3]), date_tim,float(table_list[3][1:]),float(table_list[4][2:]),int(table_list[5]),int(table_list[6]),int(table_list[7]),int(table_list[8]),str(table_list[9]),str(table_list[10]),str(table_list[11]),int(table_list[12]),int(mesafe[0])))
if(int(location[2])==861359034946341):
cur = db.query('INSERT INTO table_stat() VALUES("%i", "%s", "%s","%f","%f","%i","%i","%i","%i","%s","%s","%s","%i","%i")' % (123456, str(location[3]), date_tim,float(table_list[3][1:]),float(table_list[4][2:]),int(table_list[5]),int(table_list[6]),int(table_list[7]),int(table_list[8]),str(table_list[9]),str(table_list[10]),str(table_list[11]),int(table_list[12]),int(mesafe[0])))
if(str(location[3])=='IO'):
cur = db.query('INSERT INTO gps_table() VALUES("%i","%i", "%s", "%s","%f","%f","%i","%i","%i","%i","%i","%s","%s","%s","%i","%i")' % (int(location[2]), int(location[1]), str(location[3]), date_tim,float(table_list[3][1:]),float(table_list[4][2:]),0,int(table_list[5]),int(table_list[6]),int(table_list[7]),int(table_list[8]),str(table_list[9]),str(table_list[10]),str(table_list[11]),int(table_list[12]),int(mesafe[0])))
if(int(location[2])==861359034946341):
cur = db.query('INSERT INTO gps_table() VALUES("%i","%i", "%s", "%s","%f","%f","%i","%i","%i","%i","%i","%s","%s","%s","%i","%i")' % (123456, int(location[1]), str(location[3]), date_tim,float(table_list[3][1:]),float(table_list[4][2:]),0,int(table_list[5]),int(table_list[6]),int(table_list[7]),int(table_list[8]),str(table_list[9]),str(table_list[10]),str(table_list[11]),int(table_list[12]),int(mesafe[0])))
if(str(location[3])=='IX'):
cur = db.query('INSERT INTO gps_table() VALUES("%i","%i", "%s", "%s","%f","%f","%i","%i","%i","%i","%i","%s","%s","%s","%i","%i")' % (int(location[2]), int(location[1]), str(location[3]), date_tim,float(table_list[3][1:]),float(table_list[4][2:]),-1,int(table_list[5]),int(table_list[6]),int(table_list[7]),int(table_list[8]),str(table_list[9]),str(table_list[10]),str(table_list[11]),int(table_list[12]),int(mesafe[0])))
if(int(location[2])==861359034946341):
cur = db.query('INSERT INTO gps_table() VALUES("%i","%i", "%s", "%s","%f","%f","%i","%i","%i","%i","%i","%s","%s","%s","%i","%i")' % (123456, int(location[1]), str(location[3]), date_tim,float(table_list[3][1:]),float(table_list[4][2:]),-1,int(table_list[5]),int(table_list[6]),int(table_list[7]),int(table_list[8]),str(table_list[9]),str(table_list[10]),str(table_list[11]),int(table_list[12]),int(mesafe[0])))
elif(str(location[3])=="I3L" or str(location[3])=="I3H"):
cur = db.query('INSERT INTO panic() VALUES("%i","%s","%f","%f","%i")' % (int(location[2]), date_tim, float(table_list[3][1:]),float(table_list[4][2:]),1))
elif(str(location[3])=="I2L" or str(location[3])=="I2H"):
cur = db.query('INSERT INTO panic() VALUES("%i","%s","%f","%f","%i")' % (int(location[2]), date_tim, float(table_list[3][1:]),float(table_list[4][2:]),1))
else:
cur = db.query('INSERT INTO gps_table() VALUES("%i","%i", "%s", "%s","%f","%f","%i","%i","%i","%i","%s","%s","%s","%i","%i")' % (int(location[2]),int(location[1]), 'GEO', date_tim,float(table_list[3][1:]),float(table_list[4][2:]),int(table_list[5]),int(table_list[6]),int(table_list[7]),int(table_list[8]),str(table_list[9]),str(table_list[10]),str(table_list[11]),int(table_list[12]),int(mesafe[0])))
if(int(location[2])==861359034946341):
cur = db.query('INSERT INTO gps_table() VALUES("%i","%i", "%s", "%s","%f","%f","%i","%i","%i","%i","%s","%s","%s","%i","%i")' % (123456,int(location[1]), 'GEO', date_tim,float(table_list[3][1:]),float(table_list[4][2:]),int(table_list[5]),int(table_list[6]),int(table_list[7]),int(table_list[8]),str(table_list[9]),str(table_list[10]),str(table_list[11]),int(table_list[12]),int(mesafe[0])))
elif(location[0]=='$TRIP' and str(location[2])!='' and len(table_list)==32):
date_data= str(location[3])+" "+str(table_list[1])
data = datetime.strptime(date_data,'%d%m%Y %H%M%S')
data = data + timedelta(hours=3)
date_tim = data.strftime('%d-%m-%Y %H:%M:%S')
date_tim = data.strftime('%Y-%m-%d %H:%M:%S')
date_data= str(table_list[11])+" "+str(table_list[12])
data = datetime.strptime(date_data,'%d%m%Y %H%M%S')
data = data + timedelta(hours=3)
date_tim2 = data.strftime('%d-%m-%Y %H:%M:%S')
date_tim2 = data.strftime('%Y-%m-%d %H:%M:%S')
cur = db.query('INSERT INTO table_trip() VALUES("%i","%s","%s","%i","%f", "%f", "%i", "%i", "%i", "%i")' % (int(location[2]), date_tim2,date_tim,int(table_list[22]), float(table_list[23]), float(table_list[24]), int(table_list[25]), int(table_list[27]), int(table_list[29]), int(table_list[30])))
if(int(location[2])==861359034946341):
cur = db.query('INSERT INTO table_trip() VALUES("%i","%s","%s","%i","%f", "%f", "%i", "%i", "%i", "%i")' % (123456, date_tim2,date_tim,int(table_list[22]), float(table_list[23]), float(table_list[24]), int(table_list[25]), int(table_list[27]), int(table_list[29]), int(table_list[30])))
elif(location[0]=="$LOGIN" and str(location[2])!='' and len(table_list)==3):
tel = table_list[2].split(",")
cur = db.query('INSERT INTO login_pac() VALUES("%i","%i")' % (int(location[2]),int(tel[0])))
elif(location[0]=="$SPEED" and str(location[2])!='' and len(table_list)==13):
date_data= str(location[3])+" "+str(table_list[1])
data = datetime.strptime(date_data,'%d%m%Y %H%M%S')
data = data + timedelta(hours=3)
date_tim = data.strftime('%d-%m-%Y %H:%M:%S')
date_tim = data.strftime('%Y-%m-%d %H:%M:%S')
cur = db.query('INSERT INTO speed_pac() VALUES("%i","%s","%f","%f","%i", "%i", "%i", "%i")' % (int(location[2]), date_tim, float(table_list[2][1:]), float(table_list[3][2:]), int(table_list[4]), int(table_list[6]), int(table_list[11]), int(table_list[12].replace(',',''))))
elif(location[0]=="$ALIVE" and str(location[2])!='' and len(table_list)==1):
cur = db.query('INSERT INTO alive_paketleri() VALUES("%i","%i")' % (int(location[1]),int(location[2])))
i = i+1
#print addr, ' >> ', mesaj
except MySQLdb.Error, e:
print "Error %d: %s" % (e.args[0],e.args[1])
dosya = open('/asd/fgh/logs.txt','a')
dosya.write('\n')
dosya.write("Error %d: %s" % (e.args[0],e.args[1]))
dosya.flush()
dosya.close()
i = i + 1
def on_new_client(clientsocket,addr):
msg = ''
while True:
try:
dosya_ismi = "/asd/pfgh/logs/"+str(addr[0])+".txt"
dosya_ismi = dosya_ismi.replace(',','').replace(' ','')
print "artik mesaj:",msg
msg = str(msg)+clientsocket.recv(1024)
msg = [x.replace(' ','').replace("\n","") for x in msg]
#msg = [x.split("\n") for x in msg]
msg = ''.join(msg)
print addr, ' >> ', msg
msg = msg.replace('\n','').replace("""
""",'')
if len(msg)>1 :
lngt = len(msg)-1
else:
break
print "Son karakter:"+str(msg[lngt])
dosya = open('/asd/fgh/logs.txt','a')
dosya.write('\n')
dosya.write(msg)
dosya.flush()
dosya.close()
if msg[lngt]=='#' :
veritabani_islemleri(msg)
msg= ''
else:
print "ha buraya girdi"
msg = str(msg)+'#'
print "else dustu: ",msg
#veritabani_islemleri(msg)
except Exception as e:
print e
e = str(e)+'#'
dosya = open('/asd/fgh/logs.txt','a')
dosya.write('\n')
dosya.write(str(e))
dosya.flush()
dosya.close()
break
clientsocket.close()
s = socket.socket() # Create a socket object
host = 'ip_address' # Get local machine name
port = 123 # Reserve a port for your service.
s.bind((host, port)) # Bind to the port
s.table_listn(50) # Now wait for client connection.
#con = MySQLdb.connect(dbhost, dbuser, dbpass, dbname);
db = DB()
while True:
while True:
c, addr = s.accept()
thread.start_new_thread(on_new_client,(c,addr))
导入套接字
导入MySQLdb
导入系统
导入线程
导入时间
从datetime导入datetime,timedelta
con=无
dbhost='localhost'
dbport=3306
dbuser=“”
dbpass=“”
dbname=“”
DB类:
conn=无
def连接(自):
self.conn=MySQLdb.connect(dbhost、dbuser、dbpass、dbname)
def查询(self,sql):
睡眠时间(0.1)
尝试:
cursor=self.conn.cursor()
cursor.execute(sql)
除了(AttributeError,MySQLdb.OperationalError):
self.connect()
cursor=self.conn.cursor()
cursor.execute(sql)
self.conn.commit()
self.conn.autocommit(真)
返回光标
def veritabani_islemleri(mesaj):
尝试:
parcala=mesaj.split(#)
i=0
j=len(帕卡拉)
而我<(j-1):
表_list=parcala[i]。拆分(“;”)
位置=表\列表[0]。拆分(“,”)
如果(位置[0]='$GEOLOC'和str(位置[2])!=''和len(表列表)==14):
mesafe=表_列表[13]。拆分(“,”)
日期数据=str(表列表[1])+“”+str(表列表[2])
data=datetime.strtime(日期数据,'%d%m%Y%H%m%S')
数据=数据+时间增量(小时=3)
date\u tim=data.strftime(“%d-%m-%Y%H:%m:%S”)
date\u tim=data.strftime(“%Y-%m-%d%H:%m:%S”)
如果(str(位置[3])='-'或str(位置[3])=='2'):
cur=db.query('INSERT INTO table VALUES(“%i”、“%i”、“%s”、“%s”、“%f”、“%f”、“%i”、“%i”、“%s”、“%s”、“%s”、“%s”、“%i”、“%i”)'(int(location[2])、int(location[1])、GEO、date tim、float(table_list[3][1:]、float(table_list[4][2:]、int(table_list[5])、int(table_list[6])、int(table_list[7])、table(table(list[8]、table(table)str list[10]、[str str str str str list[10])(表[11])、int(表[12])、int(表[0]))
如果(int(位置[2])==861359034946341):
cur=db.query('INSERT INTO gps_table()值(“%i”、“%i”、“%s”、“%s”、“%f”、“%f”、“%i”、“%i”、“%s”、“%s”、“%i”、“%i”)””(123456、int(位置[1])、“地理位置”、“日期、时间、浮点(表_列表[3][1])))、浮点(表_列表[4][2]、int(表_列表[5])、int(表_列表[6]、int(表_列表[7]、表[str列表[8]、表u列表[10]、[str表u列表[10])(表[11])、int(表[12])、int(表[0]))
elif(str(位置[3])=='IX'或str(位置[3])=='IO'):
cur=db.query('INSERT INTO table_stat()value(“%i”、“%s”、“%s”、“%f”、“%f”、“%i”、“%i”、“%s”、“%s”、“%s”、“%s”、“%s”、“%i”)”(int(location[2])、str位置[3])、日期、时间、浮点(table_list[3][1:)、浮点(table_list[4][2]、int(table_list[5])、int(table_list[6])、int(table_-list[7]、int(table(table(list[8]、table(table(list[10])、table)str列表[10])[11] ),int(表[12]),int(mesafe[0]))
如果(int(位置[2])==861359034946341):
cur=db.query('INSERT INTO table_stat()value(“%i”、“%s”、“%s”、“%f”、“%f”、“%i”、“%i”、“%s”、“%s”、“%s”、“%s”、“%s”、“%i”)”(123456、str(位置[3])、日期、时间、浮点(表[3][1:]、浮点(表[4][2:]、int(表[5])、int(表[6])、int(表[7])、int(表[8]、表[11])(表[12]),int(mesafe[0]))
如果(str(位置[3])=='IO'):
cur=db.query('INSERT INTO gps_table()值(“%i”、“%i”、“%s”、“%s”、“%f”、“%f”、“%i”、“%i”、“%i”、“%i”、“%s”、“%s”、“%s”、“%i”、“%i”)'(int(位置[2])、int(位置[1])、str位置[3])、日期、时间、浮点(表[3][1:]、浮点(表[4][2:]、0、int(表[5]、int(表[6]、表[8]、表[8])(表[10])、str(表[11])、int(表[12])、int(表[0]))
如果(int(位置[2])==861359034946341):
cur=db.query('INSERT INTO gps_table()值(“%i”、“%i”、“%s”、“%s”、“%f”、“%f”、“%i”、“%i”、“%i”、“%i”、“%s”、“%s”、“%s”、“%i””)%(123456、int(位置[1])、str位置[3])、日期、时间、浮点(表[3][1]、浮点(表[4][2:]0、int(表[5])、int(表[6、表[8、表[8、表[9])[10] ),str(表[11]),int(表[12]),int(表[0]))
如果(str(位置[3])=='IX'):
cur=db.query('INSERT INTO gps_table()值(“%i”、“%i”、“%s”、“%s”、“%f”、“%f”、“%i”、“%i”、“%i”、“%s”、“%s”、“%s”、“%i”、“%i”)”(int(位置[2])、int(位置[1])、str str位置[3])、日期、时间、浮点(表[3][1:]、浮点(表[4][2:]、-1、int(表[5]、表[6]、表[8]、表[8])(表[10])、str(表[11])、int(表[12])、int(表[0]))
如果(int(位置[2])==861359034946341):
cur=db.query('INSERT INTO gps_table()值(“%i”、“%i”、“%s”、“%s”、“%f”、“%f”、“%i”、“%i”、“%i”、“%i”、“%s”、“%s”、“%s”、“%i””)%(123456、int(位置[1])、str位置[3])、日期、时间、浮点(表[3][1]、浮点(表[4][2]、-1、int(表[5])、int(表[6、表[8]、表[8])[10] ),str(表[11]),int(表[12]),int(表[0]))
elif(str(位置[3])==“I3L”或str(位置[3])==“I3H”):
cur=db.query('INSERT INTO panic()值(“%i”、“%s”、“%f”、“%f”、“%i”)'(int(位置[2])、date\u tim、float(表[3][1:])、float(表[4][2:])、1))
elif(str(位置[3])==“I2L”或str(位置[3])==“I2H”):
cur=db.query('INSERT INTO panic()值(“%i”、“%s”、“%f”、“%f”、“%i”)'(int(位置[2])、date\u tim、float(表[3][1:])、float(表[4][2:])、1))
其他:
cur=db.query('INSERT INTO gps_table()值(“%i”、“%i”、“%s”、“%s”、“%f”、“%f”、“%i”、“%i”、“%i”、“%s”、“%s”、“%i”、“%i”)'(int(位置[2])、int(位置[1])、GEO、date tim、float(表[3][1:]、float(表[2])