오늘 MySQL이 데이터베이스 연결 용량에 도달하는 문제가 발생했습니다.
내가 받은 오류는 입니다 Error establishing a database connection
. 액세스하려고 하면 /phpma
다음 오류가 발생합니다 phpMyAdmin - Error #1040 - Too many connections
.
연결 수를 늘리기 위해 변경하는 방법을 조사했지만 my.cnf
한동안 이 작업을 수행했으며 그 이후로는 문제가 없는 것 같습니다. 그래서 저는 이러한 연결에 어떤 종류의 취약성이 있는지 조금 걱정됩니다.
CentOS를 실행 중입니다. 이러한 연결을 확인하는 쉬운 방법이 있습니까? 내가 알아야 할 사항이 있습니까? 아니면 너무 오랫동안 활성화된 연결을 제거하는 방법이 있습니까? (MySQL도 이와 같이 작동합니까?)
답변1
Linux의 mysql에서 어떤 스레드가 실행되고 있는지 확인하려면 다음을 수행하세요.
root@myserver:~> mysqladmin processlist
동등한 mysql 쿼리는 다음과 같습니다.
root@myserver:~> mysql
mysql> SHOW FULL PROCESSLIST\G
또한 확인해 보세요.스레드 정보 확인출력이 무엇을 의미하는지 확인하세요. 특히:
주문하다그리고상태스레드가 수행하는 작업을 나타냅니다.
대부분의 상태는 매우 빠른 작업에 해당합니다. 스레드가 몇 초 동안 특정 상태로 유지되면 조사해야 할 문제가 있을 수 있습니다.
중요한 점은 mysql 프로세스 목록을 살펴보고 환경의 특성(예: 장기 실행 프로세스 또는 다수의 프로세스)을 기반으로 의심스러운 것이 있는지 확인하는 것입니다.
답변2
이 명령을 사용하여 실행 중인 mysql 애플리케이션을 나열하십시오.
ps -aux | grep 'mysql'
그런 다음 기본 포트 "3306"에서 필요한 mysql을 시작합니다.