MySQL 연결을 끊는 방법
MySQL로 웹사이트를 만들고 있습니다.MySQL용 TOAD를 사용 중인데 다음 오류가 발생하여 데이터베이스에 연결할 수 없습니다.
"접속이 너무 많다"
Toad for MySQL에서 기존 연결을 볼 수 있는 방법이 있습니까? 아니면 단순히 모든 연결을 함께 닫을 수 있습니까?
아니요, MySQL 명령어는 내장되어 있지 않습니다.이를 지원하는 다양한 도구와 스크립트가 있습니다. 수동으로 연결을 끊거나 서버를 재시작할 수 있습니다(단, 속도가 느려집니다).
사용하다SHOW PROCESSLIST
모든 연결을 표시합니다.KILL
프로세스 ID를 삭제합니다.
시간 초과 설정을 편집하여 MySQL 데몬이 비활성 프로세스 자체를 종료하도록 하거나 연결 수를 늘릴 수 있습니다.사용자 이름별 연결 수를 제한할 수도 있습니다.이렇게 하면 프로세스가 계속 잘못 동작할 경우 영향을 받는 것은 프로세스 자체뿐이며 데이터베이스 상의 다른 클라이언트는 잠기지 않습니다.
서버에 더 이상 연결할 수 없는 경우 MySQL은 항상 권한을 가진 사용자를 위해 1개의 추가 연결을 예약합니다.어떤 이유로 인해 해당 특권을 가진 사용자 이름을 사용하는 것이 아니라면...
그런 다음 데이터베이스에 다시 액세스할 수 있게 되면 많은 연결을 생성하는 프로세스(웹 사이트)를 수정해야 합니다.
mysql> SHOW PROCESSLIST;
+-----+------+-----------------+------+---------+------+-------+---------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+------+-----------------+------+---------+------+-------+----------------+
| 143 | root | localhost:61179 | cds | Query | 0 | init | SHOW PROCESSLIST |
| 192 | root | localhost:53793 | cds | Sleep | 4 | | NULL |
+-----+------+-----------------+------+---------+------+-------+----------------+
2 rows in set (0.00 sec)
mysql> KILL 192;
Query OK, 0 rows affected (0.00 sec)
사용자 192:
mysql> SELECT * FROM exept;
+----+
| id |
+----+
| 1 |
+----+
1 row in set (0.00 sec)
mysql> SELECT * FROM exept;
ERROR 2013 (HY000): Lost connection to MySQL server during query
하나의 명령어로 열려 있는 모든 연결을 종료할 수는 없지만 수동으로 수행할 수 있는 작업이 너무 많은 경우 일련의 쿼리를 작성할 수 있습니다.
이 예에서는 일련의 데이터를 작성합니다.KILL <pid>;
모두를 위한 쿼리some_user
에서의 접속192.168.1.1
로.my_db
.
SELECT
CONCAT('KILL ', id, ';')
FROM INFORMATION_SCHEMA.PROCESSLIST
WHERE `User` = 'some_user'
AND `Host` = '192.168.1.1'
AND `db` = 'my_db';
최대 스레드 연결 수를 나타내는 연결을 확인하는 것이 좋습니다.
show variables like "max_connections";
샘플
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 13 |
+-----------------+-------+
1 row in set
그리고 나서 그것을 예시로 증가시킨다.
set global max_connections = 500;
위에서 설명한 바와 같이 특별한 명령어는 없습니다.그러나 이러한 연결이 모두 비활성화된 경우 '플래시 테이블'을 사용하면 활성화되지 않은 연결을 모두 해제할 수 있습니다.
MySQL Workbench에서:
좌측 네비게이터> [ Management ]> [ Client Connections ]
쿼리 및 연결을 끊을 수 있는 옵션이 제공됩니다.
참고: OP에서 요청한 바와 같이 TOAD는 아니지만 나와 같은 MySQL Workbench 사용자가 여기에 있을 수 있습니다.
언급URL : https://stackoverflow.com/questions/4932503/how-to-kill-mysql-connections
'programing' 카테고리의 다른 글
C 표준 라이브러리 헤더용 Eclipse CDT의 "해결되지 않은 포함" 오류 (0) | 2022.09.17 |
---|---|
브라우저가 파일 다운로드를 수신할 때 감지 (0) | 2022.09.17 |
string.charAt(x) 또는 string[x]? (0) | 2022.09.17 |
PHP에서 HTML/XML을 어떻게 해석하고 처리합니까? (0) | 2022.09.17 |
첫 글자를 대문자로 쓴다.MySQL (0) | 2022.09.17 |