최대 연결 값을 조정하는 MySQL 자동


11

my.cnf 파일에서 최대 연결 수를 약 2000으로 설정했습니다.

max_connections=2048

5.5.20으로 업그레이드했으며 이제 오류 로그에 다음 줄이 표시됩니다.

120201 19:40:24 [Warning] Changed limits: max_open_files: 1024  max_connections: 214  table_cache: 400

mysql이 max connections 값을 214로 변경 한 이유는 무엇입니까?

# mysqladmin variables | grep max_connections
| max_connections | 214                                               

OS에 의해 제한되는 부드럽고 열려있는 파일은 1024입니다

# ulimit -Sa | grep "open files"
open files                      (-n) 1024

# ulimit -Ha | grep "open files"
open files                      (-n) 1024

실제로 사용 된 최대 연결 수 :

# mysql -e"show status like '%used_connections%'"
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| Max_used_connections | 95     |
+----------------------+-------+

1
4096과 같이 ulimit 열린 파일을 더 높게 설정하십시오.ulimit -n 4096

행동이 바뀌 었습니까? 5.0.77 버전이 있었는데이 문제를 눈치 채지 못했습니다. 5.5.20으로 업그레이드했을 때만 값이 변경되었습니다!
shantanuo

1
명백한 것을 물어볼 것입니다. 업그레이드로 my.cnf가 변경되지 않았 음을 확인 했습니까? 또한 어떤 OS? yum? 와 같은 패키지 관리자가 설치 했습니까? 그렇다면 어떤 패키지입니까?
Derek Downey

답변:


6

괜찮아 보인다. open_files_limit가 너무 낮아서 max_connections보다 큰 값을 가질 수 없습니다. 모든 연결에서 MySQL은 여러 파일을 엽니 다. 봐 여기 .

따라서 OS에서 열린 파일 제한을 늘려야하며 그 후에 더 큰 max_connections 값을 넣을 수 있습니다.


5

CentOS 7 및 MySQL 5.6.26을 사용하고 있었지만 여기 에서 스택 오버 플로우 에서 응답 한 것과 동일한 문제 인 것 같습니다.

mysql 사용자 (limits.conf)와 mysql 서비스 (mysql.service 파일) 모두에서 열린 파일 제한을 설정해야합니다.

이 두 줄을 /etc/security/limits.conf에 추가하십시오

mysql hard nofile 65535
mysql soft nofile 65535

이 줄을 /usr/lib/systemd/system/mysqld.service에 추가하십시오 ([service] 섹션에 있음)

LimitNOFILE=65535

마지막으로 재부팅하고 해당 오류 메시지가 mysql 오류 로그에서 사라 졌는지 확인하십시오.


다른 해결책은 다음과 같습니다. dba.stackexchange.com/questions/32987/…
Nav

@Nav-그렇습니다. OS에서 mysqld가 적절한 수의 파일 핸들을 사용할 수없는 경우 구성된 최대 연결 수를 사용할 수 없습니다.
MNB

또한 우분투 15.04+는 다른 접근법이 필요합니다 : stackoverflow.com/questions/23977095/…
Nav

0

이것은 새로운 mysqld의 버그로 보입니다. 나는 같은 문제가 있었다. max_connections를 700으로 설정하면 효과가 있었지만 900으로 설정하면 시작하는 동안 214로 재설정되었습니다. 이것이 의도적 인 변화라면, 700이나 그와 비슷한 것으로 낮추었을 것입니다. 값 214는 의미가 없습니다.
어쨌든 ulimit -n으로 설명자 제한을 올리면 문제가 해결됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.