Временным решением этой проблемы может быть увеличение максимально допустимых подключений mysql. Это можно сделать одним из двух способов, указанных ниже.
Первый:
Войти всервер mysql и введите приведенную ниже команду.
mysql> SET GLOBAL max_connections = 200;
Это увеличит максимальное количество соединений. Но этот параметр изменится, если сервер будет перезапущен.
Секунда:
Отредактируйте файл /etc/mysql/my.cnf и увеличьте max_connection в этом файле.
[mysqld]
local-infile=0
datadir=/var/lib/mysql
user=mysql
symbolic-links=0
max_connections = 100
Сохраните изменения и введите следующее, чтобы перезапустить mysqld:
/etc/init.d/mysqld restart
Ноэта проблема обычно возникает из-за открытых соединений, которые не являются должным образом закрытыми и недоступными для использования.
Просто попробуйте просмотреть все ресурсы, которые обращаются к вашей базе данных, и проверьте, правильно ли обрабатываются все соединения.
глядя на код, можно увидеть, что вы не поместили код в пробную версию.
Согласно вашему коду,если исключение происходит при извлечении данных, ваше соединение не будет закрыто, и, следовательно, это будет пустой тратой ресурсов. Поэтому, как и в стандарте кодирования, для обработки соединений используется try и catch с finally.
try{
//your code
}
catch(Exception e){
//handle the exceptions here
}
finally{
try{
channel.close();
} catch(Exception e){
log.error("Error is "+e.getMessage(),e);
e.printStackTrace();
}
try {
connection.close();
} catch (IOException e) {
log.error("Error is "+e.getMessage(),e);
// TODO Auto-generated catch block
e.printStackTrace();
}
catch(Exception e){
log.error("Error is "+e.getMessage(),e);
e.printStackTrace();
}
}