
Tengo un bot que se ejecuta en mi máquina con Windows y recientemente compré un servidor virtual Ubuntu. Después de una serie de errores infinitos, simplemente reinicié el servidor por completo y lo volví a intentar desde cero. Puedes mirar aquí para ver otra publicación de algunos de mis errores anteriores:https://stackoverflow.com/questions/63310926/no-pg-hba-conf-entry-for-host-connect-call-failed-invalid-data-directory-for?noredirect=1#comment111984138_63310926
Ahora, cuando intento iniciar mi bot, me da este error:
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"
Sin embargo, la base de datos, el usuario y la contraseña son correctos. Está funcionando incluso ahora ya que el bot se está ejecutando en mi máquina con Windows, por lo que creo que este es un problema específico de Ubuntu. Mis direcciones de escucha configuradas en"
listen_addresses = '*'
y mi pg_hba.conf configurado en:
# 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
Solía tener la IP predeterminada, pero intenté abrirla para cualquier conexión con la contraseña, pero el servidor Ubuntu aún no puede conectarse. Además, parece que no tengo este archivo de forma natural en mi sistema Ubuntu en este momento. Puedo editarlo desde mi máquina con Windows, pero no sé si eso afecta a ambos o no. No entiendo completamente la base de datos, pero estoy bastante seguro de que está alojada en mi propia PC. También puedo llevar el archivo manualmente al servidor Ubuntu, pero no quiero estropear nada nuevamente y quedarme aún más atascado. Cambiar host
a local
solo pareció hacer que la base de datos dejara de funcionar en mi máquina con Windows.
Llevo mucho tiempo estancado en esto y no tengo idea de qué hacer. Realmente espero que alguien conozca el problema y espero haber brindado suficiente información. Gracias.