И така, имате
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Неуспех на комуникационната връзка
java.net.ConnectException:Връзката е отказана
Цитирам от този отговор който също съдържа стъпка по стъпка урок за MySQL+JDBC:
Ако получите
SQLException: Connection refused
илиConnection timed out
или специфичен за MySQLCommunicationsException: Communications link failure
, тогава това означава, че DB изобщо не е достъпен. Това може да има една или повече от следните причини:
- IP адресът или името на хоста в URL адреса на JDBC е грешен.
- Името на хост в JDBC URL не се разпознава от локалния DNS сървър.
- Номерът на порта липсва или е грешен в URL адреса на JDBC.
- DB сървърът не работи.
- DB сървърът не приема TCP/IP връзки.
- Сървърът на DB е изтекъл връзките.
- Нещо между Java и DB блокира връзките, напр. защитна стена или прокси.
За да разрешите едното или другото, следвайте следните съвети:
- Проверете и тествайте ги с
ping
.- Опреснете DNS или вместо това използвайте IP адрес в JDBC URL.
- Проверете го въз основа на
my.cnf
на MySQL DB.- Стартирайте DB.
- Проверете дали mysqld се стартира без
--skip-networking option
.- Рестартирайте DB и коригирайте кода си съответно, че затваря връзките
finally
.- Деактивирайте защитната стена и/или конфигурирайте защитната стена/прокси сървъра, за да разрешите/препратите порта.
Вижте също:
- Как трябва да се свържа с JDBC база данни/източник на данни в приложение, базирано на сървлет?
- Безопасно ли е да се използва статичен екземпляр java.sql.Connection в многонишкова система?