데이터베이스 연결을 설정 오류; 이러한 연결이 실제인지 여부를 어떻게 확인할 수 있습니까?

데이터베이스 연결을 설정 오류; 이러한 연결이 실제인지 여부를 어떻게 확인할 수 있습니까?

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

관련 정보