SQLyog(내가 사용하는 GUI)에서 실행할 때 몇 분 정도 걸리는 MySQL SELECT 쿼리가 있습니다. PowerShell(SimplySQL 사용)을 통해 정확히 동일한 쿼리를 실행하려고 하면 항상 30초에 실패합니다. 어떤 시간 초과 변수가 나를 제한하는지, 아니면 내 PS 환경에 30초 시간 초과가 있는 다른 설정이 있는지 잘 모르겠습니다. Linux MySQL 서버의 my.cnf 파일에 이러한 시간 초과 값을 설정하고 MySQL을 다시 시작했습니다. 하지만 성공하지 못했습니다:
으아악Google에서 MySQL 및 시간 초과 값을 검색했지만 답변을 찾지 못했습니다. 따라서 두 가지 질문은 다음과 같습니다. 재정의할 수 있는 30초 제한 시간이라는 다른 변수가 무엇입니까? 아니면 대화형 도구에서 쿼리가 실행되는 방식과 PS 세션에서 쿼리가 실행되는 방식의 차이점을 알아낼 수 있는 다른 방법이 있습니까? (참고: 항상 30초 안에 완료되도록 쿼리 속도를 높일 수는 없습니다.)
PS를 실행할 때 필요한 것은 다음과 같습니다.
으아악(마지막 줄은 "timeout"이라는 MySQL 변수를 성공적으로 재정의했음을 보여줍니다.)
P粉6524951942023-09-11 10:54:28
PowerShell은 이를 수행하기 위해 배후에서 .Net 연결 클래스를 사용하며 이러한 개체에는 연결 문자열이 필요합니다. 연결 문자열에는 일반적으로 연결 시간 초과가 포함될 수 있습니다. 정확한 시간 초과 설정은 사용하는 특정 드라이버에 따라 다르며 안타깝게도 Connectionstrings.com에는 잘 문서화되어 있지 않습니다. 예는 다음과 같습니다.
으아악그렇지 않으면 연결 개체 자체에 시간 초과 속성을 설정할 수도 있습니다. 하지만 그 모양을 정확히 파악하려면 PowerShell 연결 코드를 살펴봐야 합니다.
PowerShell 코드가 연결 문자열이 DSN=MyDataSource
와 같은 ODBC 데이터 소스로 전달될 수도 있습니다. 이 경우 데이터 소스의 구성을 살펴봐야 합니다.