MySQL Ошибка 1040: слишком много соединений - программирование
Подтвердить что ты не робот

MySQL Ошибка 1040: слишком много соединений

Как исправить это, "Ошибка SQL 1040: слишком много соединений" даже я пытаюсь поставить

max_user_connection=500

все еще "Слишком много соединений"

4b9b3361

Ответ 1

Стоит знать, что если у вас заканчивается свободное место на диске на диске или диске, это также приведет к повторному запуску MySQL с этой ошибкой. Если вы уверены, что это не фактическое количество подключенных пользователей, то следующим шагом будет проверка наличия свободного места на диске/разделе сервера MySQL.

Изменить январь 2019 года:
Это верно для MySQL 5.7 и 5.8. Я не знаю для версий выше этого.

Ответ 2

MySQL: ОШИБКА 1040: Слишком много соединений

В основном это говорит о том, что MySQL обрабатывает максимальное количество подключений одновременно, и по умолчанию он обрабатывает соединения 100 одновременно.

Следующие причины приводят к тому, что MySQL запускает соединения.

  • Медленные запросы

  • Методы хранения данных

  • Конфигурация Bad MySQL

Мне удалось преодолеть эти проблемы, выполнив следующие действия.

Откройте MySQL command line tool и введите

show variables like "max_connections";

Это вернет вам что-то вроде этого.

+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 100   |
+-----------------+-------+

Вы можете изменить настройку, например. 200, выполнив следующую команду без перезагрузки сервера MySQL.

set global max_connections = 200;

Теперь, когда вы перезапустите MySQL, в следующий раз он будет использовать этот параметр вместо стандартного.

Имейте в виду, что увеличение количества подключений увеличит объем оперативной памяти, необходимый для запуска MySQL.

Ответ 3

Если у вас заканчиваются такие соединения, возможно, что вы не закрываете открытые соединения.

Просмотрите код, который открывает соединения и гарантирует, что соединения будут закрыты как можно скорее. Как правило, вы хотите использовать ключевое слово using во всем, что реализует IDisposable (включая подключения к базе данных), чтобы гарантировать, что такие объекты будут удалены, как только они покинут область, в которой они нужны.

Вы можете проверить текущее количество активных соединений с помощью этого запроса:

show processlist

Ссылка: Состояние отображения в MySQL - активные или полные соединения?

Ответ 4

Вы должны изменить max_connections, чтобы увеличить количество разрешенных соединений.

И установите max_user_connections назад по умолчанию 0 = > без ограничений, если вам не нужно ограничить для каждого подключения пользователя.

MySQL Слишком много соединений

Ответ 5

В вашей программе вы открыли бы соединения и оставались открытыми без закрытия.

Я столкнулся с той же проблемой и, наконец, идентифицировал.

Я добавил этот код после try catch.

finally{
    try {
        rs.close();
        p.close();
        conn.close();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

Ответ 6

Попробуйте следующее:

откройте терминал и введите следующую команду: sudo gedit /etc/mysql/my.cnf

Вставьте строку в файл my.cnf: set-variable=max_connections=500

Ответ 7

Убедитесь, что ваше текущее запущенное приложение все еще обращается к вашему mysql и использует все соединения DB.

Итак, если вы попытаетесь получить доступ к mysql из workbench, вы получите сообщение "слишком много соединений".

остановить текущее веб-приложение, которое поддерживает все эти подключения к db, и затем ваша проблема будет решена.

Ответ 8

Эта ошибка возникает из-за того, что ограничение соединения достигает максимального предела, определенного в файле конфигурации my.cnf.

Чтобы исправить эту ошибку, войдите в MySQL как пользователь root (Примечание: вы можете войти в систему как пользователь root, поскольку mysql предварительно назначит дополнительное соединение для root user) и увеличит max_connections, используя следующую команду:

SET GLOBAL max_connections = 500;

Это изменение будет там, до следующего перезапуска сервера. Чтобы сделать это изменение постоянным, вам необходимо изменить в своем файле конфигурации. Вы можете сделать это,

vi /etc/my.cnf

[mysqld]
max_connections = 500

Эта статья подробно описывает шаг за шагом обходной путь для исправления этого ошибка. Посмотрите на это, я надеюсь, что это может вам помочь. Спасибо.