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