IT

Larabel 5.4 및 Mariadb에서 너무 많은 연결 오류 발생

itgroup 2023. 2. 6. 23:24
반응형

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

반응형