#java #postgresql #docker #psql
#java #postgresql #docker #psql
Вопрос:
Я пытаюсь следовать руководству по SpringBoot здесь
и заключительным действием является использование файла .yml для подключения моего логического кода к контейнерной базе данных. При запуске приложение не находит мою контейнерную базу данных на
jdbc-url: jdbc: postgresql://localhost: 5432/demodb
и я получаю эту ошибку
ФАТАЛЬНЫЙ: база данных «demodb» не существует
Создать базу данных «demodb» с помощью оболочки psql было единственным способом избежать этой ошибки, но,
Я хочу иметь возможность использовать базу данных контейнера, и я полагал, что оболочка psql будет иметь видимость того, что было создано внутри моего контейнера. Скриншот здесь доказывает обратное (слева находится оболочка). (Справа находится контейнер)
Все логины (для контейнера и оболочки) идентичны, но ввод psql -U postgres в командной строке приводит к моему локальному хостингу psql.
Когда я использую conninfo, базы данных моей оболочки подключаются к «localhost» (адрес «::1») через порт «5432», в то время как базы данных контейнера подключаются через сокет в «/ var / run / postgresql» через порт «5432».
Изменение моего jdbc на jdbc-url: jdbc: postgresql://var/run / postgresql: 5432 / demodb также не сработало.
Это потому, что у меня на моем компьютере два разных psql?
Ответ №1:
В качестве ответа на мой собственный вопрос, тем, кто хочет, чтобы URL-адрес jdbc подключался к базе данных контейнера docker, необходимо обязательно остановить любую службу Postgresql 12.
Первоначально мое соединение было отклонено на моем IP-адресе контейнера, но я мог подключиться через терминал. Моя СУБД postgres тоже была на localhost.