Как настроить max_connections в MySQL программно - программирование
Подтвердить что ты не робот

Как настроить max_connections в MySQL программно

У меня есть сервер, на котором многие пользователи будут подключаться к нему и использовать там базу данных, и я использую MySQL. Я знаю, что номер по умолчанию max_connections в MySQL равен 100 или 150, но я уверен, что мне нужно выйти за пределы этого числа, поэтому я использовал следующее, чтобы увеличить число:

SET global max_connections = 1000000

Теперь я пытаюсь проверить max_connections следующим образом:

show variables like 'max_connections'

Он дает мне следующее:

max_connections; 100000;

Это знак того, что он преуспел (если я не понимаю его неправильно). Когда мои пользователи начинают подключаться, я получаю сообщение об ошибке с сервера, когда число подключенных пользователей превышает 110. Ошибка:

ошибка: время ожидания истекло. Истекший период ожидания для получения соединения из пула. Возможно, это произошло поскольку все объединенные соединения использовались и максимальный размер пула был достиг.

Почему я получаю эту ошибку и как ее исправить?

4b9b3361

Ответ 1

Как изменить max_connections

Вы можете изменить max_connections, когда MySQL работает через SET:

mysql> SET GLOBAL max_connections = 5000;
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW VARIABLES LIKE "max_connections";
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 5000  |
+-----------------+-------+
1 row in set (0.00 sec)

Кому OP

timeout связанный

Я никогда раньше не видел ваше сообщение об ошибке, поэтому я googled. возможно, вы используете Connector/Net. Руководство по подключению/сети говорит о максимальном размере пула подключений. (по умолчанию 100), см. таблицу 22.21.

Я предлагаю вам увеличить это значение до 100 тыс. или отключить объединение пулов Pooling=false

ОБНОВЛЕНО

у него есть два вопроса.

Q1 - что произойдет, если я отключу объединение Замедляйте соединение с БД. connection pooling - это механизм, который использует уже сделанное соединение с БД. Стоимость создания нового соединения высока. http://en.wikipedia.org/wiki/Connection_pool

Q2 - Можно ли увеличить значение объединения или максимум 100?

вы можете увеличить, но я уверен, что значение MAX, может быть max_connections в my.cnf

Мое предложение состоит в том, что не выключайте пул, увеличивайте значение на 100 до тех пор, пока ошибка соединения не будет.

Если у вас есть инструмент стресс-теста, например JMeter, вы можете проверить себя.

Ответ 2

Вы можете установить максимальное количество подключений, используя:

set global max_connections = '1 < your number > 100000';

Это позволит установить количество подключений к MySQL до (требуются привилегии SUPER).