Я установил максимальное количество подключений около 2000 в файле my.cnf.
max_connections=2048
Я обновился до 5.5.20 и теперь вижу следующую строку в журнале ошибок.
120201 19:40:24 [Warning] Changed limits: max_open_files: 1024 max_connections: 214 table_cache: 400
Почему mysql изменил значение максимального числа подключений на 214?
# mysqladmin variables | grep max_connections
| max_connections | 214
Софт и хард открытые файлы ограничены ОС 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 |
+----------------------+-------+
ulimit -n 4096
yum
? Если да, то какой пакет?Ответы:
Мне кажется, все в порядке. Вы не можете иметь max_connections больше этого значения, потому что у вас open_files_limit слишком низкое. Для каждого соединения MySQL открывает несколько файлов. Посмотрите здесь .
Таким образом, вам придется увеличить лимит открытых файлов в вашей ОС, а затем вы можете установить более высокое значение max_connections.
источник
Похоже, это та же проблема, на которую я ответил здесь в stackoverflow , хотя я использовал CentOS 7 и MySQL 5.6.26
Вам необходимо увеличить лимит открытых файлов как для пользователя mysql (в limit.conf), так и для службы mysql (в файле mysql.service).
добавить эти две строки в /etc/security/limits.conf
добавьте эту строку в /usr/lib/systemd/system/mysqld.service (в разделе [service])
затем, наконец, перезагрузите компьютер и убедитесь, что эти сообщения об ошибках исчезли из журнала ошибок MySQL.
источник
Кажется, это какая-то ошибка в новом mysqld. У меня такая же проблема. Установка max_connections на 700 работала, но если я установил его на 900, он был сброшен на 214 во время запуска. Если бы это было целенаправленное изменение, то оно снизило бы его до 700 или чего-то подобного, значение 214 не имеет смысла.
В любом случае, увеличение лимита дескриптора с помощью ulimit -n решает проблему.
источник