Larabel 5.4 및 Mariadb에서 너무 많은 연결 오류 발생
최근 larabel 앱을 5.1에서 5.4로 업그레이드했습니다.내 서버는 현재 PHP 7과 Maria db 10.1.22에 있습니다.지금 정말 이상한 오류가 발생하고 있습니다.브라우저를 갱신하려고 하면 PHPMyAdmin이 표시될 수 있습니다.#1040 - Too many connections
다른 경우 앱에서 새 링크를 클릭하면 동일한 오류가 나타납니다.인터넷에서 몇 가지 조사를 해서 다음 명령을 실행했습니다.
show variables like 'max_connections`
위의 명령에서는 100이 주어졌습니다.그리고 500으로 늘립니다.
하지만 지금은 여전히 오류가 납니다.다른 서버에 oracle mysql 5.6이 설치되어 있고 max_connections가 151이고 1년 반 이상 이 오류가 발생하지 않았기 때문에 이상합니다.
명령어를 실행하면show processlist
아래 결과를 얻었는데 계속 증가하고 있습니다.이게 정상이야?
Mariadb의 문제점은 무엇이며, 어떻게 하면 해결할 수 있을까요?
너희들이 해결책을 찾았는지 아닌지 모르겠지만 나도 같은 문제에 직면해서 해결책을 찾았다.Larabel 어플리케이션을 5.2에서 5.4로 업그레이드하면서 중요한 것을 놓쳤습니다.php artisan queue: 작업도 업그레이드 되었습니다.
레벨 5.2에서는 queue:work를 실행합니다.한 번에 하나의 작업만 처리하지만 5.4 큐: work는 큐에 대한 연결을 만들고 연결을 유지합니다.따라서 cron에 queue:work가 매분 실행되도록 설정되어 있는 경우 매분 새로운 연결이 생성되므로 연결 수가 너무 많다는 오류가 발생합니다.
이 정보는 larabel 5.4 문서에서는 찾을 수 없었습니다.queue:work에 대한 설명을 보기 위해 php 장인을 조사하다가 설명이 변경되었음을 알게 되었습니다.
5.2 레벨의 설명을 다음에 나타냅니다.
큐: 작업>>>> 큐의 다음 작업 처리
이것은 5.4레벨의 설명입니다.
queue: work >>> 데몬으로서의 큐 작업 처리 시작
보시다시피 그들이 하는 일의 차이를 알 수 있습니다.
이것이 당신에게 도움이 되길 바랍니다.
감사해요.
바보같은 관측일 수도 있지만, 당신은 그 관찰을DB::disconnect('foo')
당신의 DB 연결을 닫는다면요?
어쨌든 db는 자동으로 닫히기 때문에 다른 곳에 문제가 있을 수 있습니다.모니터링 해봤어요?
한 도구는 MySQL입니다.innotop
에서 보실 수중에 있습니다.
https://github.com/innotop/innotop
체크해 주세요
어떤 웹 서버를 사용하고 있습니까?Apache의 경우 MaxRequestWorkers(이전 이름)의 설정은 무엇입니까?MaxClients
으로 약20개 여야 합니다.이십 명
이 보다 큰 되어 있는 max_connections
그게 당신이 보고 있는 것을 설명해 줄 수 있어요.
언급URL : https://stackoverflow.com/questions/44248036/too-many-connections-error-with-laravel-5-4-and-mariadb
'IT' 카테고리의 다른 글
실행 중인 스크립트의 상위 디렉토리 가져오기 (0) | 2023.02.06 |
---|---|
mysql.sock을 찾을 수 없습니다. (0) | 2023.02.06 |
PHP를 사용하여 오류 404 페이지를 만드는 방법 (0) | 2023.02.06 |
PHP에서 문자열의 일부를 제거하려면 어떻게 해야 합니까? (0) | 2023.02.06 |
@see와 @inheritDoc의 차이점 상세 (0) | 2023.02.06 |