提问人:Kiran Kumawat 提问时间:10/6/2023 更新时间:10/6/2023 访问量:145
端口 5432 失败:服务器意外关闭了连接
port 5432 failed: server closed the connection unexpectedly
问:
在版本下方
- 乌班图22.04
- 轨道 5.2.6
- 红宝石 2.6.10
- PostgreSQL 14的
在 docker 容器中运行 postgresql 并在运行 rake db:migrate 等任何命令或尝试连接 psql -h 127.0.0.1 -U user 或 rake db:create 时出现以下错误
PG::ConnectionBad: connection to server at "127.0.0.1", port 5432 failed: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
当我尝试在本地运行 PostgreSQL 时出现以下错误
psql: error: connection to server at "localhost" (127.0.0.1), port 5432 failed: could not initiate GSSAPI security context: Unspecified GSS failure. Minor code may provide more information: Server not found in Kerberos database
connection to server at "localhost" (127.0.0.1), port 5432 failed: FATAL: database "DATABSE" does not exist
答:
0赞
Rakesh Bakoriya
10/6/2023
#1
rake db:migrate 不直接在 docker 容器中运行
有 2 种方法可以运行它
1)第一个
首先,在 docker-entrypoint.sh 文件中添加以下行
echo $SHARED_DIR
bundle exec rake db:setup DISABLE_DATABASE_ENVIRONMENT_CHECK=1
bundle exec rake db:migrate DISABLE_DATABASE_ENVIRONMENT_CHECK=1
或
echo $SHARED_DIR
bundle exec rake db:setup
bundle exec rake db:migrate
请记住,当您第一次创建 Docker 映像时,rake db:setup 命令只需运行一次,之后每当您创建新映像时,请注释 rake db:setup 命令。 否则,数据库将被重置,您将丢失数据。
2)另一种方式。
您可以在本地转到您的项目并运行此命令
为此,您必须运行 sudo docker ps -a 命令才能查看所有 docker 映像
之后,运行转到位置 sudo docker exec -ti container_id bash 命令
然后
bundle rake db:setup
bundle rake db:migrate
评论
0赞
Kiran Kumawat
10/6/2023
谢谢 Rakesh,但我不是试图在容器内运行 rake db:migrate,而是从外部尝试。
评论
psql
pg_hba.conf
FATAL: database "DATABSE" does not exist
-- 您的连接字符串(user、host、dbname、port)是什么?