Mysql
 sql >> база данни >  >> RDS >> Mysql

Spring Boot не може да се свърже с изходите на MySQLand в Docker/Docker compose

Предавате DATABASE_HOST , DATABASE_PORT , DATABASE_NAME , DATABASE_USER и DATABASE_PASSWORD но не го използвате в приложението си.

Актуализирайте своите имоти по този начин. (По-добре, ако създадете профил, така че приложението ви да работи извън Docker)

spring.datasource.url=jdbc:mysql://${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_NAME}?autoReconnect=true
spring.datasource.username=${DATABASE_USER}
spring.datasource.password=${DATABASE_PASSWORD}

Ако наистина искате да използвате localhost като ваш db_url . Можете също да използвате network_mode: "service:[service name]" свойство на docker compose. Единственият недостатък е, че това свойство не може да се използва с port собственост.

version: '3'

services: 
  docker-mysql:
    image: mysql:latest
    network_mode: "service:spring-boot-jpa-docker-webapp"
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=test
      - MYSQL_PASSWORD=root
  spring-boot-jpa-docker-webapp:
    image: springboot_docker
    depends_on:
      - docker-mysql
    ports:
      - 8080:8080
      - 3306 #Add this only if you want to expose the mysql to outer world.
    environment:
      - DATABASE_USER=root
      - DATABASE_PASSWORD=root
      - DATABASE_NAME=test

И вашият файл със свойства може да изглежда така

spring.datasource.url=jdbc:mysql://localhost:3306/${DATABASE_NAME}?autoReconnect=true
spring.datasource.username=${DATABASE_USER}
spring.datasource.password=${DATABASE_PASSWORD}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql избере int като валута или преобразува int във валутен формат?

  2. Как да конвертирам всички таблици в базата данни в едно съпоставяне?

  3. По-добър начин за изпълнение на множество MySQL команди с помощта на шел скрипт

  4. Как да извлечете падащите стойности от базата данни и да ги покажете в jsp

  5. Базата данни върна невалидна стойност в QuerySet.dates()