zoukankan      html  css  js  c++  java
  • PostgreSQL

    升级PostgreSQL遇到的问题

    之前将PostgreSQL从9.5升级到了10.3版本,安装时将端口设置成了5433,(默认是5432),后来发现在使用psql来restore db会发生语法错误。

    由于PostgreSQL10.3版本添加了9.5版本没有的sql语法,导致了这个错误,但我明明已经升级了数据库,为什么还会遇到语法错误呢?而且我发现我在cmd窗口里连接了数据库之后,psql提示我psql的版本是10.3,而server版本却是9.5。

    在折腾了好一会,才被自己的蠢都哭了。

    原来是因为我在连接数据库时没有通过-p 5433来指定10.5版本的server端口号,所以psql自动连接了默认端口号是5432的9.5版本server。

    解决方式

    连接数据库时指定端口号

    如果要连接5432以外的端口号,必须通过-p参数来指定端口号。

    由于我原本用的是9.5版本的,本身就启动着9.5版本的server服务,端口号是默认的5432;后来我升级了10.3版本的,实际上PostgreSQL在升级时并不会卸载旧版本的,会在安装了新版本之后就自动启动新版本的server服务,这里我设置的端口号是5433。

    于是在我的电脑上就同时启动着9.5和10.3两个版本的server服务,当我没有指定端口号时,其实一直是连接的9.5版本的server,于是在restore使用了新版本语法的db时就会报错。

    修改默认端口号

    如果我希望不指定端口号就能连接新版本的server,就只能将10.3的server的端口号改为默认端口号5432。

    首先将9.5版本的server服务关闭,这个要在系统的服务管理器中将其关闭:

    • win + R快捷键打开运行;
    • 输入services.msc打开服务管理器;
    • 找到运行中的9.5版本的server服务将其关闭。

    在PostgreSQL的安装路径下,找到对应版本的postgresql.conf文件(在data文件夹内):

    • 修改port = 5432
    • 保存修改,重启该版本的server服务,即可生效。
  • 相关阅读:
    ZOJ 1060 Count the Color
    POJ 3321 Apple Tree
    数字三角形模型
    静态维护区间加等差数列的求和问题
    Codeforces Round #622 (Div. 2)-题解
    算法竞赛进阶指南0x00-算法基础
    Codeforces Round #628 (Div. 2)
    Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round)
    Codeforces Round #621 (Div. 1 + Div. 2)
    Codeforces Round #620 (Div. 2) 题解
  • 原文地址:https://www.cnblogs.com/yulinlewis/p/9410896.html
Copyright © 2011-2022 走看看