MySQLdb: 자동 클라이언트 재연결 활성화
MySQLdb에서 연결 자동 재연결을 설정하는 것은 PHP의 MySQL 확장에 비해 간단한 작업이 아닙니다. 이 문서에서는 이 문제를 다루고 효과적인 솔루션을 제공합니다.
배경
MySQL과의 활성 연결을 유지하는 것은 웹 애플리케이션에서 매우 중요합니다. 네트워크 문제, 시간 초과 또는 데이터베이스 재시작으로 인해 이러한 연결이 중단되어 오류가 발생할 수 있습니다. 이러한 상황을 처리하려면 데이터베이스 클라이언트에 자동 재연결 기능이 있어야 합니다.
MySQLdb 솔루션
MySQLdb는 MySQL의 MYSQL_OPT_RECONNECT처럼 자동 재연결을 위한 직접적인 옵션을 제공하지 않습니다. . 그러나 해결 방법에는 MySQL에 연결할 수 없을 때 일반적으로 연결 오류를 유발하는cursor.execute() 메서드를 래핑하는 것이 포함됩니다.
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
설명
이 메서드는 초기 연결을 설정하기 위한 connect() 메서드가 있는 DB 클래스입니다. query() 메소드는 커서를 사용하여 쿼리 실행을 시도합니다. 연결 오류(AttributeError 또는 MySQLdb.OperationalError)가 발생하면 connect()를 호출하여 자동으로 다시 연결한 다음 새 커서로 쿼리를 다시 시도합니다. 이 접근 방식을 사용하면 애플리케이션이 일시적인 연결 문제를 처리하고 원활한 데이터베이스 액세스를 유지할 수 있습니다.
위 내용은 MySQLdb에서 자동 클라이언트 재연결을 활성화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!