programing

python을 통해 접속할 때 기본 Mysql 연결 타임아웃을 변경하려면 어떻게 해야 합니까?

itsource 2022. 10. 14. 21:44
반응형

python을 통해 접속할 때 기본 Mysql 연결 타임아웃을 변경하려면 어떻게 해야 합니까?

python을 사용하여 mysql 데이터베이스에 연결했습니다.con = _mysql.connect('localhost', 'dell-pc', '', 'test')제가 만든 프로그램은 10시간 정도 풀실행에 많은 시간이 걸립니다.사실, 나는 말뭉치와 다른 단어들을 읽으려고 노력하고 있다.판독이 종료된 후 타임아웃 오류가 발생하였습니다.

Mysql의 디폴트 타임아웃을 확인했습니다.

+----------------------------+----------+
| Variable_name              | Value    |
+----------------------------+----------+
| connect_timeout            | 10       |
| delayed_insert_timeout     | 300      |
| innodb_lock_wait_timeout   | 50       |
| innodb_rollback_on_timeout | OFF      |
| interactive_timeout        | 28800    |
| lock_wait_timeout          | 31536000 |
| net_read_timeout           | 30       |
| net_write_timeout          | 60       |
| slave_net_timeout          | 3600     |
| wait_timeout               | 28800    |
+----------------------------+----------+

기본 타임아웃을 변경하려면 어떻게 해야 하나요?

작업:

con.query('SET GLOBAL connect_timeout=28800')
con.query('SET GLOBAL interactive_timeout=28800')
con.query('SET GLOBAL wait_timeout=28800')

매개 변수 의미(Navigator의 MySQL Workbench에서 가져온 의미:[ Instance ]> [ Options File ]> [ Networking ]> [ Timeout Settings ]섹션)

  • connect_module:mysqld 서버가 '잘못된 핸드쉐이크'로 응답할 때까지 연결 패킷을 기다리는 시간(초)
  • interactive_timeout 서버가 인터랙티브 연결을 닫을 때까지 인터랙티브 연결을 기다리는 시간(초)
  • wait_timeout 서버가 연결을 닫을 때까지 연결에서 액티비티를 기다리는 시간(초)

BTW: 28800초는 8시간이기 때문에 10시간 실행 시에는 이 값이 실제로 더 커야 합니다.

MySQL 구성 파일에서 기본값을 변경합니다(mysqld 섹션의 connect_timeout 옵션).

[mysqld]
connect_timeout=100

이 파일에 액세스 할 수 없는 경우는, 다음의 스테이트먼트를 사용해 이 값을 설정할 수 있습니다.

SET GLOBAL connect_timeout=100;

오래된 질문인 것은 알지만, 참고로 이것은 적절한 접속 옵션을 인수로 전달함으로써 실행할 수도 있습니다._mysql.connect예를 들어,

con = _mysql.connect(host='localhost', user='dell-pc', passwd='', db='test',
          connect_timeout=1000)

키워드 파라미터(host, passwd 등)의 사용에 주의해 주십시오.코드의 가독성이 향상됩니다.

전달할 수 있는 다양한 인수에 대한 자세한 내용은_mysql.connectMySQLdb API 매뉴얼을 참조하십시오.

또한 MAX_EXECUPUTION_TIME은 장기 실행 쿼리의 중요한 파라미터입니다.MySQL 5.7 이상에서 작동합니다.

현재 값을 확인합니다.

SELECT @@GLOBAL.MAX_EXECUTION_TIME, @@SESSION.MAX_EXECUTION_TIME;

그런 다음 필요에 따라 설정하십시오.

SET SESSION MAX_EXECUTION_TIME=2000;
SET GLOBAL MAX_EXECUTION_TIME=2000;

언급URL : https://stackoverflow.com/questions/14726789/how-can-i-change-the-default-mysql-connection-timeout-when-connecting-through-py

반응형