wor*_*joe 10 postgresql psql mac-os-x
这是我今天尝试使用以下命令登录到我的 localhost PosgreSQL 数据库时收到的错误消息psql:
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Run Code Online (Sandbox Code Playgroud)
我使用 Homebrew 安装了 PostgreSQL,今天早上我使用该实用程序卸载并重新安装了 PostgreSQL,没有观察到任何变化。该psql客户端工作正常,我仍然可以使用它来连接到网络上的数据库。我一两个月只连接到我的本地数据库一次,之前它运行良好,所以我假设这是由于一些自动更新,但我不知道是哪个。Mac OS 最近将自身升级到 High Sierra (10.13)。
2014 年这里出现了相同的错误消息(链接),但这是一个人在启动服务器时遇到问题的情况。就我而言,我相信它正在运行——我已经使用过brew services start postgresql,是的,我今天重新启动了几次。但是,错误中提到的文件 ,/tmp/.s.PGSQL.5432在我的系统上不存在。我认为这是一些配置错误的情况。任何人都知道如何解决?
更新:我尝试手动启动服务器(按照 Evan 的建议),我认为我取得了突破。这是我尝试手动启动时遇到的错误:
FATAL: database files are incompatible with server
DETAIL: The data directory was initialized by PostgreSQL version 9.6, which is not compatible with this version 10.1.
Run Code Online (Sandbox Code Playgroud)
更新 2:最终我通过替换我的数据目录并使用空数据库重新初始化它来解决这个问题,使用initdb标记为“正确”的答案。公平地说,所有三个答案都有帮助。我无法将数据库从旧版本更新到新版本,因为我不再拥有旧版本 Postgres 的二进制文件。
Eva*_*oll 18
如果您没有任何数据,那么 Brew 似乎有问题。您是否运行了brew升级,StackOverflow 上有两个答案可以解决这个问题,我已将它们合并在一起以尝试两全其美。
备份
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
sudo mv /usr/local/var/postgres /usr/local/var/.postgres_bak;
Run Code Online (Sandbox Code Playgroud)确保您拥有最新版本
brew update
brew upgrade postgresql
Run Code Online (Sandbox Code Playgroud)要么,要么重新初始化要么尝试升级您的数据目录
Nuke it(从头开始,保留旧备份)
initdb /usr/local/var/postgres -E utf8
Run Code Online (Sandbox Code Playgroud)尝试升级它
pg_upgrade -b /usr/local/Cellar/postgresql/$myOldVersion/bin/ -B /usr/local/Cellar/postgresql/$myNewVersion/bin -d /usr/local/var/.postgres_bak -D /usr/local/var/postgres
Run Code Online (Sandbox Code Playgroud)重启服务器。
brew services start postgresql
Run Code Online (Sandbox Code Playgroud)删除备份,如果服务器重新启动并且一切正常,则删除备份
sudo rm -rf /usr/local/var/.postgres_bak
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
24429 次 |
| 最近记录: |