MySQL 오류 수정 방법 : 너무 많은 연결

MySQL 오류 소개 : 너무 많은 연결

수요가 많은, 즉 많은 사용자가 방문하는 웹 애플리케이션 (사이트, 블로그, 포럼 등)이있는 경우 이는 서버의 소비 증가로 이어집니다. 웹 앱이 MySQL 데이터베이스를 사용하고 쿼리가 정말 많은 경우 (웹 프로그래밍이 나쁘거나 웹을 사용하는 많은 사용자가), MySQL이 다음 오류를 표시 할 가능성이 있습니다.

mysqli_connect(): (HY000/1040): Too many connections

MySQL : 너무 많은 연결 오류는 무엇을 의미합니까?

이는 MySQL에 너무 많은 요청이 수신 할 수있는 것보다 더 많이, 대기열에 있거나 대기 할 수있는 것보다 더 많이 들어오고 있음을 의미합니다.

그것을 해결하는 방법?

간단합니다. MySQL이 지원하는 최대 요청 (연결) 제한을 늘려야합니다.

이 문제를 해결할 수있는 두 가지 옵션을 제공합니다.

1. /etc/mysql/my.cfg 파일을 편집합니다.

nano /etc/mysql/my.cfg

그 안에 다음을 [mysql]이라고 적힌 곳에 넣습니다.

최대 연결 수 = 500 최대 사용자 연결 수 = 500

이렇게하면 최대 연결 수가 100 (기본값)에서 500으로 늘어납니다.

저장하고 종료 한 다음 MySQL 서비스를 다시 시작하면됩니다. 이 변경은 영구적입니다.

2. 이 문제를 해결하는 또 다른 방법은 MySQL 쿼리를 통해 최대 제한을 동일하게 변경하는 것입니다.

먼저 현재 제한을 보여 드리겠습니다.

mysql --user="root" --password="PASSWORD" --execute='SHOW VARIABLES LIKE "max_connections";'

다음과 같이 표시됩니다.

+ ----------------- + ------- + | 변수 _ 이름 | 가치 | + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +

즉, 현재 제한은 151 개 연결입니다. 쿼리를 통해 500 개로 늘려 보겠습니다.

mysql --user="root" --password="PASSWORD" --execute='SET GLOBAL max_connections = 500;'

준비 됐어!

이러한 방식의 문제는 서비스가 다시 시작될 때이 구성이 손실된다는 것입니다.

이 세부 사항을 보완하려면 X 시간마다 확인하는 bash 스크립트를 만들거나 데몬의 시작 또는 다시 시작 블록에 해당 줄을 추가할 수도 있습니다 

그런데 왜 이 두 번째 옵션을 알고 싶습니까? ……글쎄, 내가 말한 건 바로 그거야. 하지만 한 달 전에 Ubuntu 서버는 방법 2번을 무시했습니다. 그래서... 어리석은 OS의 극단적인 경우에도 잘 작동하는 두 번째 옵션이 있습니다 