Не удалось создать PoolableConnectionFactory
В чем проблема? Не удается подключиться к базе данных?
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (
Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.)
Ответы
Ответ 1
Это актуальная причина проблемы:
Вызвано: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Ошибка связи канала связи
У вас есть проблема связи с базой данных. Убедитесь, что ваше приложение имеет сетевой доступ к вашей базе данных (а брандмауэр не блокирует порты в вашей базе данных).
Ответ 2
Это сетевая проблема. Проверьте подключение к базе данных.
Либо ваша связь с базой данных, имя пользователя и пароль неверны, либо сервер базы данных остановлен.
Ответ 3
У меня была такая же проблема с localhost
в исходном URL-адресе.
Я решил с 127.0.0.1
вместо localhost
.
Ответ 4
Здесь он был вызван avast антивирусом. Вы можете отключить брандмауэр avast и включить только брандмауэр Windows.
Ответ 5
Я сталкиваюсь с той же проблемой, когда я настраиваю tomcat и mysql-сервер на VirtualBox VM с помощью шеф-повара.
в этом случае, я думаю, что истинная проблема заключается в том, что VirtualBox, по-видимому, назначает не-localhost адрес eth0, например
[[email protected] webapps]$ /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:60:FC:47
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
затем функция автоматического обнаружения рецепта шеф-повара с использованием 10.0.2.15 в качестве адреса привязки сервера mysql.
поэтому укажите адрес привязки для node параметров рецепта шеф-повара, чтобы решить проблему в моем случае. Надеюсь, эта информация поможет людям, использующим шеф-повара с бродягой.
{
"name" : "db",
"default_attributes" : {
"mysql" : {
"bind_address" : "localhost"
...
}
Ответ 6
Это происходит потому, что брандмауэр блокирует соединение с базой данных.
Отключите брандмауэр и повторите попытку запуска программы. Это сработало для меня...: D
Ответ 7
Перейдите к файлу my.ini
по указанному ниже пути в Windows C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
и прокомментируйте нижнюю строку
#bind-address=127.0.0.1
Затем перезапустите сервер MySQL и подключитесь.
Тогда вы сможете подключиться к MySQL с другого IP-адреса/компьютера.
Ответ 8
Эта конкретная проблема может возникнуть и в localhost. Мы не можем исключить это потому, что проблема с сетью или интернет-соединения. Эта проблема возникнет, даже если все свойства подключения к базе данных верны.
Я столкнулся с той же проблемой, когда я использовал имя хоста. Вместо этого используйте IP-адрес. Это будет решено.
Ответ 9
Я изменил версию драйвера в pom.xml и помог мне
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.2</version>
</dependency>
Ответ 10
В моем случае решение было удалить атрибут
validationQuery="select 1"
из тега ресурса (Derby DB).
Ответ 11
Проблема может быть связана с тем, что слишком много пользователей обращаются к БД одновременно. Либо увеличьте количество пользователей, которые могут одновременно получить доступ к БД, либо исключите существующих пользователей (или приложения). Используйте "Показать список процессов;" в БД хоста проверить подключенных пользователей;
Я натолкнулся на другую причину, файл catalina.policy, который мог запретить доступ к конкретному IP/PORT
Ответ 12
Если вы используете версию apache tomcat 8.0, вместо нее используйте tomcat 7.0
Я пробовал localhost до 127.0.0.1 и отключил брандмауэр, но не работал, но использовал tomcat 7.0 и теперь работал
Ответ 13
У меня была аналогичная ошибка. Изменение URL-адреса JDBC для использования 127.0.0.1 вместо localhost помогло.
Также попытался изменить записи в файле catalina.policy, но это не помогло.
Запись, которую я изменил, была для - java.net.SocketPermission