sql >> データベース >  >> RDS >> Mysql

MySQLクライアントがMySQLdbと自動再接続できるようにするにはどうすればよいですか?

    cursor.execute()をラップする関数を作成することで、この問題を解決しました。 MySQLdb.OperationalErrorをスローしていたのでメソッド 例外。上記の他の例は、それがconn.cursor()であることを意味します この例外をスローするメソッド。

    import MySQLdb
    
    class DB:
      conn = None
    
      def connect(self):
        self.conn = MySQLdb.connect()
    
      def query(self, sql):
        try:
          cursor = self.conn.cursor()
          cursor.execute(sql)
        except (AttributeError, MySQLdb.OperationalError):
          self.connect()
          cursor = self.conn.cursor()
          cursor.execute(sql)
        return cursor
    
    db = DB()
    sql = "SELECT * FROM foo"
    cur = db.query(sql)
    # wait a long time for the Mysql connection to timeout
    cur = db.query(sql)
    # still works
    


    1. MySQLでロールを使用して特権を管理する方法

    2. SSISExcelインポートの強制が正しくない列タイプ

    3. 生年月日と今日からのOracleAgeの計算

    4. .nextvalJDBC挿入の問題