질문
MySQL 데이터베이스를 사용할 때 이러한 문제가 자주 발생하는데, 이는 "Can not connect to MySQL server. Too many connections
"-mysql 1040 오류입니다. 이는 MySQL에 액세스하는 해제되지 않은 연결 수가 MySQL의 상한에 도달했기 때문입니다. 일반적으로 MySQL의 기본 최대 연결 수는 100이고 최대 연결 수는 16384에 도달할 수 있습니다.
최대 연결 수를 수정하는 데 일반적으로 사용되는 두 가지 방법이 있습니다.
해결책 1:
명령을 사용하세요.
set GLOBAL max_connections=100;
명령을 통해 최대 연결 수를 100으로 설정할 수 있습니다. 이 방법은 즉시 적용되며 mysql 서비스를 다시 시작할 필요가 없습니다. 아래와 같이:
이 작동하려면 루트 권한이 있는 mysql 계정이 필요하며, 그렇지 않으면 “1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation”
오류가 보고됩니다.
동시에 위 그림에서 볼 수 있듯이 max_connections의 최소값을 1로 설정합니다.
설정을 완료한 후 다른 단말기로 연결했더니 1040-Too many connections
라는 오류 메시지가 떴습니다.
해결책 2: my.cnf 수정
mysql 구성 파일vim /etc/my.cnf
을 열고 max_connections=100一行
을 추가(있는 경우 값을 직접 수정)한 다음 서비스를 다시 시작:/etc/init.d/mysqld restart
하면 이때 적용됩니다.
차이:
1. 구성 파일을 수정하면 서비스를 다시 시작해야 하며, 명령으로 수정하면 즉시 적용됩니다.
2. 보다 안정적이고 신뢰할 수 있도록 구성 파일을 수정합니다. 왜냐하면 구성 파일에 max_connections=100
이 있고 이를 수정하기 위해 명령어를 사용하면 mysql 서비스가 다시 시작되면 구성 파일에 지정된 연결 개수가 다시 사용되기 때문이다.
요약:
최대 연결 수를 수정할 때 질문이 있습니다. 값이 클수록 좋은가요, 아니면 얼마나 높게 설정해야 합니까? 이 매개변수의 크기는 사용된 플랫폼에서 지원하는 스레드 라이브러리 수(창은 최대 2048개만 지원할 수 있음), 서버 구성(특히 메모리 크기), 각 연결이 차지하는 리소스 등 다양한 요소를 기반으로 고려해야 합니다. (메모리 및 로드) 시스템에서 요구하는 응답 시간 등이 얼마입니까? 이 매개변수는 전역 또는 세션 범위에서 수정할 수 있습니다. 연결 수의 증가는 많은 연쇄 반응을 가져올 것이며 이로 인해 발생하는 부정적인 영향은 실제로 피해야 합니다. 이 글이 mysql을 사용하는 모든 분들께 도움이 되기를 바랍니다.