우선, 이 글에서 사용한 도구들을 첨부해 주세요. 저는 원격 서버라 데이터베이스 쿼리 도구를 설치할 수 없고, 제가 작성한 일반 쿼리 소프트웨어만 사용할 수 있습니다.
1.mysql> 'Threads%' 같은 상태 표시;
[{"Variable_name":"Threads_cached","Value":"0"},{"Variable_name":"Threads_connected","Value":"101"},{"Variable_name":"Threads_created","Value":119"},{"Variable_name" :"Threads_running","값":2"}]
Threads_connected #这个数值指的是打开的连接数 Threads_running #这个数值指的是激活的连接数, 이 값은 일반적으로 연결된 값보다 훨씬 낮습니다 Threads_connected 결과는 show processlist와 동일하며, 현재 연결 수를 나타냅니다. 정확히 말하면, Threads_running는 현재 동시성 수를 나타냅니다
2.mysql> '%max_connections%'와 같은 변수를 보여줍니다;
[{"Variable_name":"max_connections","Value":"151"}]
이는 쿼리 데이터베이스가 현재 설정한 최대 연결 수입니다
/etc/my.cnf에서 데이터베이스 최대 연결 수를 설정할 수 있습니다 [mysqld] max_connections = 1000 max_connections 매개변수를 사용하여 데이터베이스에 대한 최대 연결 수를 제어할 수 있습니다:
3.mysql> '%connect%'와 같은 변수를 보여줍니다;
[{"Variable_name":"character_set_connection","Value":"utf8"},{"Variable_name":"collation_connection","Value":"utf8_general_ci"},{"Variable_name":"connect_timeout"," Value":"10"},{"Variable_name":"disconnect_on_expired_password","Value":"ON"},{"Variable_name":"init_connect","Value":""},{"Variable_name":"max_connect_errors","Value" :"100"},{"Variable_name":"max_connections","Value":"151"},{"Variable_name":"max_user_connections","Value":"0"},{"Variable_name":"performance_schema_session_connect_ attrs_size","가치":"512"}]
많은 개발자들이 "MySQL: ERROR 1040: 너무 많은 연결"이라는 비정상적인 상황을 겪게 될 텐데, 이 상황의 이유 중 하나는 방문 횟수가 너무 많아 MySQL 서버가 이를 막을 수 없기 때문이며, 따라서 서버로부터 분산 읽기 압력을 높이는 것을 고려해야 합니다; 또 다른 이유는 MySQL 설정 파일의 max_connections값이 너무 작기 때문입니다.
|