簡體   English   中英

sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: no pg_hba.conf entry for host,沒有改變任何東西

[英]sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: no pg_hba.conf entry for host, didnt change anything

我正在使用與 docker-compose 一起運行的舊 Flask sqlalchemy 網站,開始給我這個錯誤。 我嘗試在應用程序配置中更改主機名,並從 gitlab 回到舊版本,但我不確定我還能做什么。

以下是我認為可能對您有用的所有相關代碼:

INIT.PY
from flask import Flask
from flask_bcrypt import Bcrypt
from flask_login import LoginManager
from flask_sqlalchemy import SQLAlchemy
from flask_mail import Mail
import os


app = Flask(__name__)

app.config["SECRET_KEY"] = "FLASK_SECRET_KEY"
app.config["SQLALCHEMY_DATABASE_URI"] = "postgresql://flask:flask@db:5432/flask_dev"

app.config["MAIL_SERVER"] = "smtp.gmail.com"
app.config["MAIL_PORT"] = 587
app.config["MAIL_USE_TLS"] = True
app.config["MAIL_USERNAME"] = os.environ.get("MAIL_USERNAME")
app.config["MAIL_PASSWORD"] = os.environ.get("MAIL_PASSWORD")

db = SQLAlchemy(app)
bcrypt = Bcrypt(app)
login_manager = LoginManager(app)
mail = Mail(app)

from website import routes
APP.PY
from website import db, app

if __name__ == "__main__":
    db.create_all()
    app.run(debug=True, host="0.0.0.0")
DOCKER-COMPOSE.YAML
version: "3.3"

services:

  db:
    environment:
      - POSTGRES_USER=flask
      - POSTGRES_PASSWORD=flask
      - POSTGRES_DB=flask_dev
    image: postgres:latest
    volumes:
      - postgres_data:/var/lib/postgresql/data
    ports:  
      - "5400:5432"
    networks:
      - backend
    restart: 
      always
    
  web:
    build: .
    ports:
      - "5000:5000"
    env_file: .env
    depends_on:
      - db
    networks:
      - backend
    restart: 
      always



volumes:
  postgres_data:

networks:
  backend:
DOCKERFILE
FROM python

WORKDIR /app

COPY requirements.txt /app/

RUN pip install --requirement requirements.txt

COPY . /app/

CMD ["python","app.py"]

完整的錯誤回溯

ubuntu@ubuntu-admin:~/Desktop/home-website-master/hawala-system$ docker-compose up 
[+] Running 3/3
 ⠿ Network hawala-system_backend  Created                                                                                                                     1.1s
 ⠿ Container hawala-system-db-1   Created                                                                                                                     3.7s
 ⠿ Container hawala-system-web-1  Created                                                                                                                     3.4s
Attaching to hawala-system-db-1, hawala-system-web-1
hawala-system-db-1   | 
hawala-system-db-1   | PostgreSQL Database directory appears to contain a database; Skipping initialization
hawala-system-db-1   | 
hawala-system-db-1   | 2022-08-19 11:44:36.587 UTC [1] LOG:  starting PostgreSQL 14.5 (Debian 14.5-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
hawala-system-db-1   | 2022-08-19 11:44:36.587 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
hawala-system-db-1   | 2022-08-19 11:44:36.588 UTC [1] LOG:  listening on IPv6 address "::", port 5432
hawala-system-db-1   | 2022-08-19 11:44:38.419 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
hawala-system-db-1   | 2022-08-19 11:44:39.121 UTC [26] LOG:  database system was shut down at 2022-08-19 11:44:20 UTC
hawala-system-db-1   | 2022-08-19 11:44:40.493 UTC [1] LOG:  database system is ready to accept connections
hawala-system-web-1  | /usr/local/lib/python3.10/site-packages/flask_sqlalchemy/__init__.py:872: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future.  Set it to True or False to suppress this warning.
hawala-system-web-1  |   warnings.warn(FSADeprecationWarning(
hawala-system-db-1   | 2022-08-19 11:44:41.765 UTC [33] FATAL:  no pg_hba.conf entry for host "172.24.0.3", user "flask", database "flask_dev", no encryption
hawala-system-web-1  | Traceback (most recent call last):
hawala-system-web-1  |   File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 3361, in _wrap_pool_connect
**EXTRA TRACEBACK REMOVED**
hawala-system-web-1  |   File "/usr/local/lib/python3.10/site-packages/psycopg2/__init__.py", line 122, in connect
hawala-system-web-1  |     conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
hawala-system-web-1  | psycopg2.OperationalError: FATAL:  no pg_hba.conf entry for host "172.24.0.3", user "flask", database "flask_dev", no encryption
hawala-system-web-1  | 
hawala-system-web-1  | 
hawala-system-web-1  | The above exception was the direct cause of the following exception:
hawala-system-web-1  | 
hawala-system-web-1  | Traceback (most recent call last):
hawala-system-web-1  |   File "/app/app.py", line 5, in <module>
hawala-system-web-1  |     db.create_all()
*unuseful
hawala-system-web-1  |   File "/usr/local/lib/python3.10/site-packages/psycopg2/__init__.py", line 122, in connect
hawala-system-web-1  |     conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
hawala-system-web-1  | sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL:  no pg_hba.conf entry for host "172.24.0.3", user "flask", database "flask_dev", no encryption
hawala-system-web-1  | 
hawala-system-web-1  | (Background on this error at: https://sqlalche.me/e/14/e3q8)

我有一個舊卷正在運行,我刪除了所有卷,然后我向我的數據庫服務添加了一個運行狀況檢查,我讓 web 服務依賴於數據庫服務,以確認該服務在自己附加之前是健康的; 繼承人更新的代碼。

version: "3.3"

services:

  web:
    build: .
    ports:
      - "5000:5000"
    env_file: .env
    depends_on:
      db:
        condition: service_healthy
    networks:
      - backend
    restart: 
      always

  db:
    environment:
      - POSTGRES_USER=flask
      - POSTGRES_PASSWORD=flask
      - POSTGRES_DB=flask_dev
    image: postgres:latest
    volumes:
      - postgres_data:/var/lib/postgresql/data
    ports:  
      - "5400:5432"
    networks:
      - backend
    healthcheck:
        test: [ "CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}" ]
    restart: 
      always

volumes:
  postgres_data:

networks:
  backend:

暫無
暫無

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

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