查询期间与MySQL服务器的连接丢失?Python和mysql

查询期间与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 = "

我一直在听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 = ""
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])