无法连接到 Azure PostgreSQL 数据库

问题描述 投票:0回答:0

我正在学习本教程 azure/flask/database 并卡在第 4 步,因为当我尝试进行数据库升级时它无法连接到服务器。

我尝试了尽可能多的变量组合,并在互联网上四处寻找,但没有明确列出他们如何设置这些变量。

我对设置环境变量感到困惑: 数据库名称=?这是在私人 dns 区域下还是我可以弥补 数据库主机=?此服务器名称是 Azure Database for PostgreSQL 灵活服务器下的名称吗? DBUSER= -> Azure Database for PostgreSQL 灵活服务器 DBPASS= -> 这列在 Azure Database for PostgreSQL 灵活服务器下

我的代码的相关部分

 conn_str = os.environ['AZURE_POSTGRESQL_CONNECTIONSTRING']
        conn_str_params = {pair.split('=')[0]: pair.split('=')[1] for pair in conn_str.split(' ')}

        DATABASE_URI = 'postgresql+psycopg2://{dbuser}:{dbpass}@{dbhost}/{dbname}'.format(
            dbuser=conn_str_params['user'],
            dbpass=conn_str_params['password'],
            dbhost=conn_str_params['host'],
            dbname=conn_str_params['dbname']
        )

进行数据库升级时出错...

postgresql+psycopg2://wtnbtgqifb:[email protected]/myproj-database
Traceback (most recent call last):
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 145, in __init__
    self._dbapi_connection = engine.raw_connection()
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 3275, in raw_connection
    return self.pool.connect()
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 455, in connect
    return _ConnectionFairy._checkout(self)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 1271, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 719, in checkout
    rec = pool._do_get()
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/pool/impl.py", line 168, in _do_get
    with util.safe_reraise():
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 147, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/pool/impl.py", line 166, in _do_get
    return self._create_connection()
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 396, in _create_connection
    return _ConnectionRecord(self)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 681, in __init__
    self.__connect()
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 905, in __connect
    with util.safe_reraise():
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 147, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 901, in __connect
    self.dbapi_connection = connection = pool._invoke_creator(self)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/engine/create.py", line 636, in connect
    return dialect.connect(*cargs, **cparams)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 580, in connect
    return self.loaded_dbapi.connect(*cargs, **cparams)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/psycopg2/__init__.py", line 122, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: FATAL:  password authentication failed for user "wtnbtgqifb"
FATAL:  no pg_hba.conf entry for host "10.0.2.254", user "changed4privacy", database "myproj-database", SSL off


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/tmp/8db3a4444623084/antenv/bin/flask", line 8, in <module>
    sys.exit(main())
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/flask/cli.py", line 1050, in main
    cli.main()
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/click/decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/flask/cli.py", line 357, in decorator
    return __ctx.invoke(f, *args, **kwargs)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/flask_migrate/cli.py", line 150, in upgrade
    _upgrade(directory, revision, sql, tag, x_arg)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/flask_migrate/__init__.py", line 111, in wrapped
    f(*args, **kwargs)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/flask_migrate/__init__.py", line 200, in upgrade
    command.upgrade(config, revision, sql=sql, tag=tag)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/alembic/command.py", line 378, in upgrade
    script.run_env()
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/alembic/script/base.py", line 576, in run_env
    util.load_python_file(self.dir, "env.py")
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/alembic/util/pyfiles.py", line 94, in load_python_file
    module = load_module_py(module_id, path)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/alembic/util/pyfiles.py", line 110, in load_module_py
    spec.loader.exec_module(module)  # type: ignore
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/tmp/8db3a4444623084/migrations/env.py", line 111, in <module>
    run_migrations_online()
  File "/tmp/8db3a4444623084/migrations/env.py", line 96, in run_migrations_online
    with connectable.connect() as connection:
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 3251, in connect
    return self._connection_cls(self)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 147, in __init__
    Connection._handle_dbapi_exception_noconnection(
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2413, in _handle_dbapi_exception_noconnection
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 145, in __init__
    self._dbapi_connection = engine.raw_connection()
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 3275, in raw_connection
    return self.pool.connect()
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 455, in connect
    return _ConnectionFairy._checkout(self)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 1271, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 719, in checkout
    rec = pool._do_get()
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/pool/impl.py", line 168, in _do_get
    with util.safe_reraise():
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 147, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/pool/impl.py", line 166, in _do_get
    return self._create_connection()
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 396, in _create_connection
    return _ConnectionRecord(self)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 681, in __init__
    self.__connect()
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 905, in __connect
    with util.safe_reraise():
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 147, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 901, in __connect
    self.dbapi_connection = connection = pool._invoke_creator(self)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/engine/create.py", line 636, in connect
    return dialect.connect(*cargs, **cparams)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 580, in connect
    return self.loaded_dbapi.connect(*cargs, **cparams)
  File "/tmp/8db3a4444623084/antenv/lib/python3.10/site-packages/psycopg2/__init__.py", line 122, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL:  password authentication failed for user "wtnbtgqifb"
FATAL:  no pg_hba.conf entry for host "10.0.2.254", user "changed4privacy", database "myproj-database", SSL off

(Background on this error at: https://sqlalche.me/e/20/e3q8)
(antenv) root@f4784940d3d1:/tmp/8db3a4444623084# 

我希望它能在不给我密码错误的情况下连接到数据库。我只能假设密码错误是因为 uri 不正确而不是密码。

我也重设密码以防万一

python postgresql azure flask flask-sqlalchemy
© www.soinside.com 2019 - 2024. All rights reserved.