簡體   English   中英

org.postgresql.util.PSQLException:致命:角色“amigoscode”不存在

[英]org.postgresql.util.PSQLException: FATAL: role "amigoscode" does not exist

我是 SpringBoot 的新手。 我正在嘗試創建一個 spring 啟動應用程序,我正在使用 docker 運行它。 當我運行這個應用程序時,我收到以下錯誤

org.postgresql.util.PSQLException: FATAL: role "amigoscode" does not exist

我沒有任何提示,因為我無法追蹤此錯誤。 角色“amigoscode”已經存在。 我附在 application.yml 和 docker-compose.yml 下面

應用程序.yml

server:
  port: 8080

spring:
  application:
    name: customer
  datasource:
    password: password
    url: jdbc:postgresql://localhost:5432/customer
    username: amigoscode
  jpa:
    hibernate:
      ddl-auto: create-drop
    properties:
      hibernate:
        dialect: org.hibernate.dialect.PostgreSQLDialect
        format_sql: 'true'
    show-sql: 'true'

docker-compose.yml

services:
  postgres:
    container_name: postgres
    image: postgres
    environment:
      POSTGRES_USER: amigoscode
      POSTGRES_PASSWORD: password
      PGDATA: /data/postgres
    volumes:
      - postgres:/data/postgres
    ports:
      - "5432:5432"
    networks:
      - postgres
    restart: unless-stopped

  pgadmin:
    container_name: pgadmin
    image: dpage/pgadmin4
    environment:
      PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-pgadmin4@pgadmin.org}
      PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
      PGADMIN_CONFIG_SERVER_MODE: 'False'
    volumes:
      - pgadmin:/var/lib/pgadmin
    ports:
      - "5050:80"
    networks:
      - postgres
    restart: unless-stopped

networks:
  postgres:
    driver: bridge

volumes:
  postgres:
  pgadmin:

你能指導我嗎,我在這里可能做錯了什么? 我在這里提到了其他類似的問題,但沒有一個能解決我的問題。 謝謝你。

當您運行 Postgres 容器並將POSTGRES_USER作為環境變量傳遞時,會運行一個初始化腳本來創建用戶。 但是,如果文件夾(postgres 卷)已經包含來自舊運行的數據,則會跳過初始化並且不會創建用戶。 嘗試使用新卷並在 postgres 容器啟動時檢查日志。

您的堆棧使用卷postgres定義變量POSTGRES_USERPOSTGRES_PASSWORD postgres容器只會在第一次啟動時創建這些用戶,但是這個卷之前是否已經創建過,它將重新使用現有數據

您可能已經使用此卷運行了postgres容器,在這種情況下,您需要刪除它然后重新創建它,例如:

# WARNING: this will delete all containers and volumes
# including pg_data volume and pgadmin volume
# make sure to make a backup if needed
docker-compose down -v 

然后重新創建您的容器和卷(以及必要時的其他組件):

docker-compose up -d

請打開 pgAdmin,登錄 postgreSQL 並創建新的數據庫。 創建新數據庫

然后命名為“amigoscode”,然后你就可以使用 go。 amgigoscode 數據庫

它對我來說很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM