sql >> データベース >  >> RDS >> Mysql

Spring BootはMySQLに接続できず、Docker/Docker作成で終了します

    DATABASE_HOSTを渡しています 、DATABASE_PORTDATABASE_NAMEDATABASE_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]"を使用することもできます dockercomposeのプロパティ。唯一の欠点は、このプロパティを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. SQL、SELECTの使用方法

    2. mysqlで現在のユーザー名を知る方法はありますか?

    3. PHPとMySQLを使用して簡単なCRUDを簡単に作成する方法

    4. MySQLを使用して2つの時間範囲の間でクエリを実行するにはどうすればよいですか?