AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 532379
Accepted
Chloe
Chloe
Asked: 2013-08-21 09:10:37 +0800 CST2013-08-21 09:10:37 +0800 CST 2013-08-21 09:10:37 +0800 CST

如何在 Cygwin 中升级 Postgres 数据库?

  • 772

我更新了一些 Cygwin 包,现在我无法启动 Postgres:

$ /usr/sbin/postmaster
FATAL:  database files are incompatible with server
DETAIL:  The data directory was initialized by PostgreSQL version 8.2, which is not compatible with this version 9.2.4.

我尝试了 pg_upgrade但您需要同时指定新旧二进制文件。另外,pg_upgrade 说它只适用于 8.3。

我以为我可以使用 setup-x86.exe 来选择以前的版本,即 8.2.11-1,但是当我安装它时,我无法启动 Postgres:

$ /usr/sbin/postgres.exe
Bad system call (core dumped)
postgresql
  • 1 1 个回答
  • 1696 Views

1 个回答

  • Voted
  1. Best Answer
    Chloe
    2013-08-21T11:18:30+08:002013-08-21T11:18:30+08:00
    1. 卸载postgres 9
    2. 安装 postgres 8.2
    3. 安装 libpq
    4. /etc/rc.d/init.d/postgresql 启动
    5. 对每个数据库执行此操作:
      • pg_dump -f 股票.sql.gz -Z 9 -C 股票
    6. /etc/rc.d/init.d/postgresql 停止
    7. cd $PGDATA/.. # /usr/share/postgresql/..
    8. mv postgresql postgresql-8.2
    9. 安装 postgres 9、postgresql-contrib,卸载 libpq。
    10. /usr/sbin/pg_ctl.exe 初始化
    11. /usr/sbin/pg_ctl.exe 启动
    12. createdb.exe # 使用您的用户名创建数据库
    13. gzip -dc 股票.sql.gz | psql #许多警告+错误

    从 9.2 升级到 9.3

    1. 阅读有关升级 Postgres 的信息: http ://www.postgresql.org/docs/current/static/upgrading.html
    2. 如果需要,请安装旧版本的 Postgres。有人维护 Cygwin 版本的历史档案。
      1. 浏览您需要的 setup.ini 文件的时间戳:http ://www.crouchingtigerhiddenfruitbat.org/Cygwin/timemachine.html
      2. 复制文件夹的地址(不是index.html)
      3. /setup-x86.exe -X使用忽略设置签名的选项运行-X(它们未存档)。
      4. 将地址粘贴到对话框中以选择您的下载站点。然后,您将看到在此期间可用的软件包的快照。
    3. 如果您关闭 cygserver 进行升级,请重新启动它: 以管理员身份运行:cygrunsrv -S cygserver
    4. 启动旧版本的 Postgres:/usr/sbin/postmaster &或/usr/sbin/pg_ctl start
    5. 将数据库转储到临时文件中pg_dumpall > /tmp/pg.sql
    6. 关闭 Postgres/usr/sbin/pg_ctl.exe stop
    7. 移动旧数据目录mv /usr/share/postgresql /usr/share/postgresql-9.2
    8. 正常运行安装程序并安装最新的 Postgres。确保选择您的正常下载站点。
    9. 初始化数据库/usr/sbin/pg_ctl init
    10. 启动新版 Postgres/usr/sbin/pg_ctl.exe start
    11. 导入旧数据库psql -d postgres -f /tmp/pg.sql
    • 2

相关问题

  • OS X 上的 Postgresql 安装问题

  • 修复 mysql 命令行程序中的 Control-C?

  • 有哪些好的 PostgreSQL 管理工具?[关闭]

  • Access 通过 ODBC 连接到远程 Postgresql 数据库是否可用?

  • 哪个数据库服务器扩展性更好:PostgreSQL 还是 MySQL?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve