Mr.*_*key 72 postgresql debian docker portainer
我已将 Portainer 下载到我的服务器上,并在其中的容器中创建了一个 PostgreSQL 数据库。今天我无法再访问数据库。日志显示一条消息,表明存在版本问题。
我已经读到了一些类似的问题,例如在容器的映像更新到最新版本后,Postgres 容器因“数据库文件与服务器不兼容”而崩溃,在容器的映像更新为后,Postgres 容器因“数据库文件与服务器不兼容”而崩溃最新的
并且解决方案brew postgresql-upgrade-database不起作用。
我能做些什么?
日志
2021-10-03 [1] FATAL: database files are incompatible with server
2021-10-03 [1] DETAIL: The data directory was initialized by PostgreSQL version 13, which is not compatible with this version 14.0 (Debian 14.0-1.pgdg110+1).
PostgreSQL Database directory appears to contain a database; Skipping initialization
Run Code Online (Sandbox Code Playgroud)
我还发现了这个https://www.postgresql.org/docs/14/upgrading.html但命令不起作用。我是否需要以某种方式在容器中执行此操作,或者哪些命令可以使其在容器中运行?
小智 37
您需要使用以下命令将数据文件更新为新格式:
$ brew postgresql-upgrade-database
Run Code Online (Sandbox Code Playgroud)
Nya*_*edy 17
我解决了它
假设您知道上述步骤的 docker 命令。
Jac*_*cka 10
除了建议删除所有卷/图像/容器的答案之外 - 如果您在 中有数据库的共享卷docker-compose.yml,例如:
db:
image: postgres:14.1-alpine
volumes:
- ./tmp/db:/var/lib/postgresql/data
Run Code Online (Sandbox Code Playgroud)
您还需要删除位于 中的 postgres 映射卷数据./tmp/db。否则那些冲突的文件仍然存在。
如果您不关心数据 - 您将数据库用于开发目的,并且您将能够轻松地重新创建数据库,只需运行rm -r ./tmp/db. 您可以重新docker-compose up创建数据库。
如果您关心数据,请pg_dumpall在删除文件之前转储数据,并在运行后恢复docker-compose up,并且您的 postgres 服务再次准备就绪。
在 docker-compose.yml 中你可以改变
db-data:/var/lib/postgresql/data:rw
Run Code Online (Sandbox Code Playgroud)
对此
db-data:/var/lib/postgresql@14/data:rw
Run Code Online (Sandbox Code Playgroud)
删除镜像并运行
docker compose up -d
Run Code Online (Sandbox Code Playgroud)
再一次
运行后出现问题
brew update
brew upgrade
Brew 升级postgresql到 14,这给了我
psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
我也通过检查看到了与您相同的错误
tail /usr/local/var/postgres/server.log
我已经降级到版本13运行
brew uninstall postgresql
brew install postgresql@13
echo 'export PATH="/usr/local/opt/postgresql@13/bin:$PATH"' >> ~/.zshrc
我用来再次启动数据库的命令是
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
| 归档时间: |
|
| 查看次数: |
78389 次 |
| 最近记录: |