2017-01-09 2 views
0

У меня есть несколько компьютеров, на которых выполняется локальный скрипт, но они должны иметь возможность передавать информацию между ними. Я использую базу данных MYSQL на одном из компьютеров с XAMPP для этого.Достигнуто ограничение соединения MYSQL - автоматически закрывается ли JDBC?

Каждый компьютер многократно запускает и убивает локальный скрипт, на котором работает статический класс базы данных, который создает соединение с использованием JDBC при инициализации. Затем они используют это соединение для действий над префиксом в течение примерно 10-15 минут до того, как сценарий будет завершен, а затем перезапущен.

Есть только 5 компьютеров, которые имеют доступ к базе данных MYSQL, а my max_connections - 151, но каждый раз, когда я получаю ошибку при соединении, и все мои сценарии сбой.

Я предполагаю, что соединение базы данных MSQL автоматически закрывается при завершении сценария, потому что я могу запустить сценарии гораздо больше, чем 151 раз до возникновения этой ошибки. Мне нужно закрыть соединения, прежде чем я завершу сценарии? Что может быть причиной этого?

Кроме того, я могу просто перезапустить скрипты при возникновении этой ошибки, и они начнут восстанавливаться. Мне не нужно идти в phpMyAdmin и делать флеш.

+0

Вы всегда должны закрывать соединения самостоятельно, не полагайтесь на очистку или разрушение при выходе. Это может занять некоторое время (или, если ошибки могут повесить). –

ответ

2

Убедитесь, что вы отсоединили БД, когда закончили его использование. Несколько раз для автоматического отключения сеанса требуется некоторое время.

+0

Хорошо. Если это то, что вызывает это, это имеет большой смысл. – java

1

Вы всегда должны закрыть соединение, когда вы закончите с ним, как наилучшую практику. В Java, если вы пренебрегаете закрытием соединения, вы получите открытое соединение; однако документация для PHP предполагает, что закрытое соединение будет закрыто, когда скрипт завершится: http://php.net/manual/en/function.mysql-connect.php

Вы можете отслеживать открытые соединения через MySQL Workbench или аналогичный инструмент и находить, откуда они идут.

Смежные вопросы