【发布时间】:2015-05-01 13:22:18
【问题描述】:
我从 postgresql 9.3 升级到 9.4,现在我想迁移我的数据。
所以这就是我试图做的。首先我像这样运行旧的 postgresql
/opt/pgsql-9.3/bin/pg_ctl -D /var/lib/postgres/data/ start
然后,我尝试将旧数据库转储到文件中:
/opt/pgsql-9.3/bin/pg_dumpall >> old_backup.sql
它告诉我:
pg_dump: [archiver (db)] query failed: ERROR: could not access file "$libdir/postgis-2.1": No such file or directory
好吧,我试着找到了 postgis-2.1 文件并将它们复制到libdir
find / -name "*postgis-2.1*"
/usr/lib/postgresql/rtpostgis-2.1.so
/usr/lib/postgresql/postgis-2.1.so
/usr/lib/postgresql/postgis-2.1 <-----
好的,现在libdir 是什么?
/opt/pgsql-9.3/bin/pg_config --pkglibdir
/opt/pgsql-9.3/lib
所以我在/opt/pgsql-9.3/lib 中建立了一个指向here /usr/lib/postgresql/postgis-2.1 的符号链接:
pwd
/opt/pgsql-9.3/lib
ls -l postgis-2.1
postgis-2.1 -> /usr/share/postgresql/contrib/postgis-2.1
但我仍然收到错误:查询失败:错误:无法访问文件“$libdir/postgis-2.1”:没有这样的文件或目录
我有点想不通。也许有人可以帮助我?
我是usnig arch linux
附言
Postgis 已安装:
pacman -S postgis
warning: postgis-2.1.5-1 is up to date -- reinstalling
这里是二进制文件:
find / -name "*postgis-2.1*"
/usr/lib/postgresql/rtpostgis-2.1.so <---- binary
/usr/lib/postgresql/postgis-2.1.so <----- binary
/opt/pgsql-9.3/lib/postgis-2.1 <----- that's the symlink from earlier
/usr/share/postgresql/contrib/postgis-2.1
【问题讨论】:
-
升级后尝试了pg_dump?
-
升级是使用
pg_upgrade进行的?顺便说一句:在你使用符号链接的共享库进行杂耍之后,你是否运行了 ldconfig? -
没有。我使用 pacman -Syu 进行了升级。我只是做了一个正常的升级。我没有运行 ldconfig。我不知道那是什么。我马上去看看。
-
好的,非常感谢 ldconfig 提示。我读过它,但我不确定在这种情况下如何使用它,我害怕尝试。你能告诉我在这些特殊情况下我应该如何运行它?
-
[我不知道 pacman] 通常:(作为 root)
ldconfig或ldconfig -v以获得更多详细信息。您的 .so 文件应显示在输出中。 (如果不是:您的配置文件有问题)
标签: linux postgresql postgis archlinux