PostgreSQL - 사용자 "postgres"에 대한 피어 인증에 실패했습니다.

PostgreSQL - 사용자 "postgres"에 대한 피어 인증에 실패했습니다.

내 Windows 컴퓨터에서 실행되는 봇이 있고 최근에 Ubuntu 가상 서버를 구입했습니다. 일련의 무한한 오류가 발생한 후 서버를 완전히 재설정하고 처음부터 다시 시도했습니다. 이전 오류 중 일부에 대한 다른 게시물을 보려면 여기를 참조하세요.https://stackoverflow.com/questions/63310926/no-pg-hba-conf-entry-for-host-connect-call-failed-invalid-data-directory-for?noredirect=1#comment111984138_63310926

이제 봇을 시작하려고 하면 다음 오류가 발생합니다.

Traceback (most recent call last):
  File "bot.py", line 950, in <module>
    bot.loop.run_until_complete(create_db_pool())
  File "/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
    return future.result()
  File "bot.py", line 160, in create_db_pool
    bot.pg_con = await asyncpg.create_pool(database='xxx', user='postgres', password='???')
  File "/usr/local/lib/python3.8/dist-packages/asyncpg/pool.py", line 398, in _async__init__
    await self._initialize()
  File "/usr/local/lib/python3.8/dist-packages/asyncpg/pool.py", line 426, in _initialize
    await first_ch.connect()
  File "/usr/local/lib/python3.8/dist-packages/asyncpg/pool.py", line 125, in connect
    self._con = await self._pool._get_new_connection()
  File "/usr/local/lib/python3.8/dist-packages/asyncpg/pool.py", line 468, in _get_new_connection
    con = await connection.connect(
  File "/usr/local/lib/python3.8/dist-packages/asyncpg/connection.py", line 1718, in connect
    return await connect_utils._connect(
  File "/usr/local/lib/python3.8/dist-packages/asyncpg/connect_utils.py", line 663, in _connect
    con = await _connect_addr(
  File "/usr/local/lib/python3.8/dist-packages/asyncpg/connect_utils.py", line 642, in _connect_addr
    await asyncio.wait_for(connected, timeout=timeout)
  File "/usr/lib/python3.8/asyncio/tasks.py", line 483, in wait_for
    return fut.result()
asyncpg.exceptions.InvalidAuthorizationSpecificationError: Peer authentication failed for user "postgres"

하지만 데이터베이스, 사용자 및 비밀번호는 모두 정확합니다. 봇이 내 Windows 컴퓨터에서 실행되고 있기 때문에 지금도 작동하고 있습니다. 이것이 Ubuntu 관련 문제라고 생각하는 이유입니다. 내 수신 주소는 다음과 같이 설정되었습니다."

listen_addresses = '*'

내 pg_hba.conf는 다음과 같이 설정되었습니다.

# TYPE  DATABASE        USER            ADDRESS             METHOD

# IPv4 local connections:
host    all             all             0.0.0.0/0            md5
# IPv6 local connections:
host    all             all             ::/0                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
host    replication     all             0.0.0.0/0            md5
host    replication     all             ::/0                 md5

예전에는 기본 IP가 있었지만 비밀번호로 모든 연결을 위해 열려고 했지만 Ubuntu 서버는 여전히 연결할 수 없습니다. 또한 현재 내 Ubuntu 시스템에는 이 파일이 자연스럽게 없는 것 같습니다. Windows 컴퓨터에서 편집할 수 있지만 둘 다에 영향을 미치는지 여부는 알 수 없습니다. 데이터베이스를 완전히 이해하지는 못하지만 내 PC에서 호스팅된다는 것은 확실합니다. 파일 자체를 수동으로 Ubuntu 서버로 가져올 수도 있지만 다시는 아무 것도 엉망으로 만들고 더 이상 정체되고 싶지 않습니다. host으로 변경하면 local내 Windows 시스템에서 데이터베이스 작동이 중지되는 것 같습니다.

나는 정말 오랫동안 이 문제에 갇혀 있었고 무엇을 해야할지 모르겠습니다. 누군가가 문제를 알고 있기를 바라며 충분한 정보를 제공하였기를 바랍니다. 감사합니다.

관련 정보