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 機器編輯它,但我不知道這是否會影響兩者。我不完全了解該資料庫,但我很確定它是由我自己的電腦託管的?我也可以手動將文件本身帶到 Ubuntu 伺服器,但我不想再次搞亂任何事情並陷入困境。更改hostlocalonly 似乎會使資料庫停止在我的 Windows 電腦上工作。

我已經被這個問題困擾了很長一段時間,我不知道該怎麼辦。我真的希望有人知道這個問題,並且我希望我已經提供了足夠的資訊。謝謝。

相關內容