오늘 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을 시작하십시오.