def execute(self, sql):
result = None
if self.db_lock.acquire():
try:
self.cursor.execute(sql)
result = self.cursor.fetchall()
except MySQLdb.Error, e:
if e.args[0] == 2013 or e.args[0] == 2006: # ??????????
self.db_lock.release()
self.get_connect()
print str(datetime.datetime.now()).split(".")[0], '???????'
result = self.execute(sql) # ????
self.db_lock.acquire()
else:
print str(datetime.datetime.now()).split(".")[0], "ERROR %d: %s" % (e.args[0], e.args[1])
self.db_lock.release()
return result if result else None
# ??SQL??(??????)
python类Error()的实例源码
def db_connect(self):
"""?????"""
if self.db_lock.acquire():
try:
self.conn = MySQLdb.Connection(
host=self.host,
port=self.port,
user=self.user,
passwd=self.passwd,
charset=self.charset,
use_unicode=False)
except MySQLdb.Error, e:
log_db.error('connect error:' + str(e))
self.cursor = self.conn.cursor()
if not self.cursor:
raise (NameError, "Connect failure")
log_db.warning("???????")
self.db_lock.release()
def execute_no_return(self, sql):
"""
??SQL??,???????
:param sql: SQL??
"""
log_db.info('??:' + str(sql[:127]))
if self.db_lock.acquire():
try:
self.cursor.execute(sql)
except MySQLdb.Error, e:
if e.args[0] == 2013 or e.args[0] == 2006: # ??????????
self.db_lock.release()
self.db_connect()
log_db.error('??,???????')
self.cursor.execute(sql)
self.db_lock.acquire()
else:
log_db.error('execute_no_return error:' + str(e))
log_db.error('SQL : ' + sql)
self.db_lock.release()
return 'execute fail'
self.db_lock.release()
return 'execute success'
def execute(self, sql):
"""
??SQL??
:param sql: SQL??
:return: ??SQL????????
"""
log_db.info('??:' + str(sql[:127]))
result = None
if self.db_lock.acquire():
try:
self.cursor.execute(sql)
result = self.cursor.fetchall()
self.db_lock.release()
except MySQLdb.Error, e:
if e.args[0] == 2013 or e.args[0] == 2006: # ??????????
self.db_lock.release()
self.db_connect()
log_db.error('??,???????')
result = self.execute(sql) # ????
self.db_lock.acquire()
else:
self.db_lock.release()
log_db.error('execute error:' + str(e))
log_db.error('SQL : ' + sql)
return result if result else None
def execute(self, sql):
result = None
if self.db_lock.acquire():
try:
self.cursor.execute(sql)
result = self.cursor.fetchall()
except MySQLdb.Error, e:
if e.args[0] == 2013 or e.args[0] == 2006: # ??????????
self.db_lock.release()
self.get_connect()
print str(datetime.datetime.now()).split(".")[0], '???????'
result = self.execute(sql) # ????
self.db_lock.acquire()
else:
print str(datetime.datetime.now()).split(".")[0], "ERROR %d: %s" % (e.args[0], e.args[1])
self.db_lock.release()
return result if result else None
# ???
def execute(self, sql):
"""??SQL??"""
result = None
if self.db_lock.acquire():
try:
self.cursor.execute(sql)
result = self.cursor.fetchall()
except MySQLdb.Error, e:
if e.args[0] == 2013 or e.args[0] == 2006: # ??????????
self.db_lock.release()
self.get_connect()
print str(datetime.datetime.now()).split(".")[0], '???????'
result = self.execute(sql) # ????
self.db_lock.acquire()
else:
print str(datetime.datetime.now()).split(".")[0], "ERROR %d: %s" % (e.args[0], e.args[1])
self.db_lock.release()
return result if result else None
def get_domains(self):
global domains
domains = []
results = []
try:
db = MySQLdb.connect(host='172.26.253.3',
user='root',
passwd='platform',
charset = "utf8",
db='malicious_domain_sys')
cur = db.cursor()
sql = 'SELECT locate.id, domain_index.domain FROM locate,domain_index WHERE locate.id = domain_index.id AND locate.flag > 0 AND locate.flag mod 10 = 0'
count = cur.execute(sql)
# results = cur.fetchall()
domains = cur.fetchall()
# for result in results:
# if result[0].split('.')[-1] == 'cn':
# domains.append(result[0])
db.close()
except MySQLdb.Error,e:
raise e
def get_domains(self):
global domains
domains = []
results = []
try:
db = MySQLdb.connect(host='172.26.253.3',
user='root',
passwd='platform',
charset = "utf8",
db='malicious_domain_sys')
cur = db.cursor()
sql = 'SELECT locate.id, domain_index.domain FROM locate,domain_index WHERE locate.id = domain_index.id AND locate.flag > 0 AND locate.flag mod 10 = 0'
count = cur.execute(sql)
# results = cur.fetchall()
domains = cur.fetchall()
# for result in results:
# if result[0].split('.')[-1] == 'cn':
# domains.append(result[0])
db.close()
except MySQLdb.Error,e:
raise e
def execute_no_return(self, sql):
"""
??SQL??,???????
:param sql: SQL??
"""
if self.db_lock.acquire():
try:
self.cursor.execute(sql)
except MySQLdb.Error as e:
if e.args[0] == 2013 or e.args[0] == 2006: # ??????????
self.db_lock.release()
self.db_connect()
print ('??,???????')
self.cursor.execute(sql)
self.db_lock.acquire()
else:
print ('execute_no_return error:' + str(e))
print ('SQL : ' + sql)
return 'execute fail'
except:
print 'unexcept error occur!'
print sql
self.db_lock.release()
return 'execute success'
def execute(self, sql):
"""
??SQL??
:param sql: SQL??
:return: ??SQL????????
"""
result = None
if self.db_lock.acquire():
try:
self.cursor.execute(sql)
result = self.cursor.fetchall()
except MySQLdb.Error, e:
if e.args[0] == 2013 or e.args[0] == 2006: # ??????????
self.db_lock.release()
self.db_connect()
print ('??,???????')
result = self.execute(sql) # ????
self.db_lock.acquire()
else:
print ('execute error:' + str(e))
print ('SQL : ' + sql)
self.db_lock.release()
return result if result else None
def main(user, password, db, tbl, slave,
vertical, debug, version, color):
"""twindb_table_compare reads percona.checksums from the master and slave
and shows records that differ if there are any inconsistencies."""
if version:
print(__version__)
exit(0)
setup_logging(LOG, debug=debug, color=color)
try:
for database, table in get_inconsistent_tables(slave,
user,
password,
ch_db=db,
ch_tbl=tbl):
get_inconsistencies(database, table, slave, user, password,
ch_db=db, ch_tbl=tbl,
vertical=vertical, color=color)
except MySQLdb.Error as err: # pylint: disable=no-member
LOG.error(err)
exit(1)
def mysql_command(self,conn,sql_cmd): # ??sql
try:
ret = []
conn=MySQLdb.connect(host=conn["host"],user=conn["user"],passwd=conn["password"],db=conn["database"],port=conn["port"],charset="utf8")
cursor = conn.cursor()
n = cursor.execute(sql_cmd)
for row in cursor.fetchall():
for i in row:
ret.append(i)
conn.commit()
cursor.close()
conn.close()
except MySQLdb.Error,e:
ret.append(e)
return ret
def select_table(self,conn,sql_cmd,parmas): # ??????sql
try:
ret = []
conn=MySQLdb.connect(host=conn["host"],user=conn["user"],passwd=conn["password"],db=conn["database"],port=conn["port"],charset="utf8")
cursor = conn.cursor()
n = cursor.execute(sql_cmd,parmas)
for row in cursor.fetchall():
for i in row:
ret.append(i)
conn.commit()
cursor.close()
conn.close()
except MySQLdb.Error,e:
ret.append(e)
return ret
def run():
with open('test_set.txt', 'r') as f:
try:
cur = _db.cursor()
j = 1
for line in f:
print('Processing line: {} ({})'.format(line.rstrip(), j))
cur.execute('SELECT recording.id FROM recording '+
'WHERE recording.filename=%s', (line.rstrip()+'.wav',))
recId = cur.fetchone()[0]
cur.execute('INSERT INTO evaluation_sets (eval_set, recordingId) '+
'VALUES (\'test_set\', %s)', (recId,))
j += 1
except MySQLdb.Error as e:
msg = 'Error inserting utts into set.'
log(msg, e)
raise
# finally commit if no exceptions
_db.commit()
def getUserProgress(self, user, eval_set):
"""
Returns user progress into eval_set, format:
{
"progress": 541
}
"""
try:
cur = self.mysql.connection.cursor()
cur.execute('SELECT COUNT(*) FROM evaluation '+
'WHERE eval_set=%s '+
'AND evaluator=%s', (eval_set, user))
# COUNT(*) always returns a number, so no need for a try block here
progress = cur.fetchone()[0]
except MySQLError as e:
msg = 'Error getting user progress.'
log(msg + ' Eval_set: {}, user: {}'.format(eval_set, user), e)
return (msg, 500)
return (json.dumps(dict(progress=progress)), 200)
def getPossibleSets(self):
"""
Returns possible sets, format:
[
"set1",
"set2",
..
]
or as in client-server API.
"""
try:
cur = self.mysql.connection.cursor()
cur.execute('SELECT eval_set FROM evaluation_sets '+
'GROUP BY eval_set')
sets = [x[0] for x in cur.fetchall()]
except MySQLError as e:
msg = 'Error getting possible sets.'
log(msg, e)
return (msg, 500)
return (json.dumps(sets), 200)
def recCountBySession(self, sessionId):
"""
Returns recording count as found in database for session.
0 on failure
Parameters:
sessionId id of session
"""
try:
cur = self.db.cursor()
cur.execute('SELECT COUNT(*) FROM recording WHERE sessionId=%s', (sessionId,))
recCnt = cur.fetchone()
if recCnt:
return recCnt[0] # fetchone returns tuple
return 0
except MySQLdb.Error as e:
msg = 'Error grabbing rec count for session: {}'.format(sessionId)
log(msg, e)
raise
def connect(self, db_config):
"""
Connect to MySQL database
Args:
db_config (dict): A dictionary containing the configuration
Returns:
(Mysql Connector): The established MySQL connection
"""
try:
print 'Connecting to MySQL database:',
self.conn = MySQLdb.connect(
host=db_config['host'],
port=db_config['port'],
user=db_config['user'],
passwd=db_config['passwd'],
db=db_config['db'])
print 'OK'
self.conn.autocommit(True)
self.cursor = self.conn.cursor()
return self.conn
except MySQLdb.Error as error:
print error
return 0
def query_database(self, query):
"""
Perform a database query
Args:
query (str): The SQL query
Returns:
list: Mysql Rows
"""
try:
self.cursor.execute(query)
return self.cursor.fetchall()
except MySQLdb.Error as err:
# print("Failed executing query: {}".format(err))
return 0
except MySQLdb.Warning as wrn:
return 0
def __execute_query(self, sql):
with warnings.catch_warnings():
warnings.simplefilter('error', MySQLdb.Warning)
try:
self.__cur.execute(sql)
return True
except MySQLdb.Error, e:
print "An Error occured running query. %s" %e
#print sql;
return False
except MySQLdb.Warning, e:
print "An Warning occured running query. %s" %e
return True
except MySQLdb.ProgrammingError, e:
print "A ProgrammingError occured running query. %s" %e
exit(1)
return False