def connect(_host, _user, _passwd, _db, _charset, _port):

  conn = MySQLdb.connect(host=_host,

  user=_user,

  passwd=_passwd,

  db=_db,

  charset=_charset,

  port=_port,

  use_unicode=False)

  conn.cursor().execute('set autocommit=1')

return conn


1.use_unicode=False最好是显示指出,mysqldb不同版本默认值不一样,这样会导致取出来的数据格式不一致。比如1.2.4默认取出来是unicode,即use_unicode=True。而1.2.3默认取出来是str,即use_unicode=False。

2.conn.cursor().execute('set autocommit=1'),不开启事务。这样可以避免deadlock。默认是autocommit=0