当我试图跑步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"?
当我检查时Server.log
,我看到:
FATAL: database files are incompatible with server
DETAIL: The data directory was initialized by PostgreSQL version 9.5,
which is not compatible with this version 9.6.1.
我尝试按照本教程(从 9.4 到 9.5)升级 9.6.1,但不断收到此错误消息
cannot write to log file pg_upgrade_internal.log
Failure, exiting
跑完之后
$ pg_upgrade -v \
> -d /usr/local/var/postgres \
> -D /usr/local/var/postgres9.6.1 \
> -b /usr/local/Cellar/postgresql/9.5/bin/ \
> -B /usr/local/Cellar/postgresql/9.6.1/bin/
有谁知道我错过了什么/做错了什么?谢谢!
系统:
- macOS 10.12.2
- PostgreSQL 与 Homebrew 一起安装
9 个月后,我从 9.6.5 更新到 PostgreSQL 10
pg_upgrade
:1)停止postgresql:
brew services stop postgresql
2)初始化postgresql10数据库:
initdb /usr/local/var/postgres10.0 -E utf8
3)仔细检查新创建的数据库:
ls /usr/local/Cellar/postgresql/
4) 运行 pq_upgrade 将数据移动到新数据库:
5)重命名旧数据库:
mv /usr/local/var/postgres /usr/local/var/postgres9.6.5
6) 将新数据库重命名为 postgres:
mv /usr/local/var/postgres10.0 /usr/local/var/postgres
7)重启postgresql:
brew services start postgresql
如果您的数据库规模不大,您可以使用 pg_dump 和 pg_dumpall 从 posgtres 9.5 以 sql 查询的形式获取数据库结构和数据转储,并在 postgres 9.6.1 中恢复相同。
如果数据库大小太大,则使用 pg_upgrade。通过查看错误,用户似乎没有目录权限,也无法写入日志文件。另外为了节省时间,我建议您使用
-k
pg_upgrade 选项来加快升级速度。请注意,这-k
将在新安装的数据目录中创建旧数据的软链接。因此,您将无法删除旧数据。