Как исправить это, "Ошибка SQL 1040: слишком много соединений" даже я пытаюсь поставить
max_user_connection=500
все еще "Слишком много соединений"
Как исправить это, "Ошибка SQL 1040: слишком много соединений" даже я пытаюсь поставить
max_user_connection=500
все еще "Слишком много соединений"
Стоит знать, что если у вас заканчивается свободное место на диске на диске или диске, это также приведет к повторному запуску MySQL с этой ошибкой. Если вы уверены, что это не фактическое количество подключенных пользователей, то следующим шагом будет проверка наличия свободного места на диске/разделе сервера MySQL.
Изменить январь 2019 года:
Это верно для MySQL 5.7 и 5.8. Я не знаю для версий выше этого.
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.
Если у вас заканчиваются такие соединения, возможно, что вы не закрываете открытые соединения.
Просмотрите код, который открывает соединения и гарантирует, что соединения будут закрыты как можно скорее. Как правило, вы хотите использовать ключевое слово using во всем, что реализует IDisposable (включая подключения к базе данных), чтобы гарантировать, что такие объекты будут удалены, как только они покинут область, в которой они нужны.
Вы можете проверить текущее количество активных соединений с помощью этого запроса:
show processlist
Ссылка: Состояние отображения в MySQL - активные или полные соединения?
Вы должны изменить max_connections
, чтобы увеличить количество разрешенных соединений.
И установите max_user_connections
назад по умолчанию 0 = > без ограничений, если вам не нужно ограничить для каждого подключения пользователя.
В вашей программе вы открыли бы соединения и оставались открытыми без закрытия.
Я столкнулся с той же проблемой и, наконец, идентифицировал.
Я добавил этот код после try catch.
finally{
try {
rs.close();
p.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Попробуйте следующее:
откройте терминал и введите следующую команду: sudo gedit /etc/mysql/my.cnf
Вставьте строку в файл my.cnf: set-variable=max_connections=500
Убедитесь, что ваше текущее запущенное приложение все еще обращается к вашему mysql и использует все соединения DB.
Итак, если вы попытаетесь получить доступ к mysql из workbench, вы получите сообщение "слишком много соединений".
остановить текущее веб-приложение, которое поддерживает все эти подключения к db, и затем ваша проблема будет решена.
Эта ошибка возникает из-за того, что ограничение соединения достигает максимального предела, определенного в файле конфигурации my.cnf
.
Чтобы исправить эту ошибку, войдите в MySQL как пользователь root
(Примечание: вы можете войти в систему как пользователь root, поскольку mysql предварительно назначит дополнительное соединение для root user
) и увеличит max_connections, используя следующую команду:
SET GLOBAL max_connections = 500;
Это изменение будет там, до следующего перезапуска сервера. Чтобы сделать это изменение постоянным, вам необходимо изменить в своем файле конфигурации. Вы можете сделать это,
vi /etc/my.cnf
[mysqld]
max_connections = 500
Эта статья подробно описывает шаг за шагом обходной путь для исправления этого ошибка. Посмотрите на это, я надеюсь, что это может вам помочь. Спасибо.