Eu configurei o número máximo de conexões para cerca de 2000 no arquivo my.cnf.
max_connections=2048
Eu atualizei para 5.5.20 e agora vejo a seguinte linha no log de erros.
120201 19:40:24 [Warning] Changed limits: max_open_files: 1024 max_connections: 214 table_cache: 400
Por que o mysql mudou o valor de conexões máximas para 214?
# mysqladmin variables | grep max_connections
| max_connections | 214
Arquivos abertos suaves e rígidos, restritos pelo sistema operacional, são 1024
# ulimit -Sa | grep "open files"
open files (-n) 1024
# ulimit -Ha | grep "open files"
open files (-n) 1024
O número de conexões máximas realmente usadas:
# mysql -e"show status like '%used_connections%'"
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| Max_used_connections | 95 |
+----------------------+-------+
ulimit -n 4096
yum
? Em caso afirmativo, qual pacote?Respostas:
Parece bom para mim. Você não pode ter max_connections maiores que isso, porque open_files_limit é muito baixo. Para cada conexão, o MySQL abre vários arquivos. Dê uma olhada aqui .
Portanto, você terá que aumentar o limite de arquivos abertos no sistema operacional e, posteriormente, colocar um valor mais alto de max_connections.
fonte
Este parece ser o mesmo problema que eu respondi no stackoverflow aqui , embora estivesse usando o CentOS 7 e o MySQL 5.6.26
Você precisa aumentar o limite de arquivos abertos, tanto para o usuário mysql (em limits.conf) quanto para o serviço mysql (no arquivo mysql.service)
anexe essas duas linhas ao /etc/security/limits.conf
anexe esta linha a /usr/lib/systemd/system/mysqld.service (na seção [service])
finalmente reinicie e verifique se essas mensagens de erro desapareceram do seu log de erros do mysql.
fonte
Parece haver algum bug no novo mysqld. Eu tive o mesmo problema. Definir max_connections como 700 funcionou, mas se eu defini-lo como 900, ele foi redefinido para 214 durante a inicialização. Se essa fosse uma mudança proposital, ela a reduziria para 700 ou algo semelhante, o valor 214 não faz sentido.
De qualquer forma, aumentar o limite do descritor com ulimit -n corrige o problema.
fonte