<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>PostgreSQL on Dapeng Zhang</title><link>https://zhangdapeng.dev/tags/postgresql/</link><description>Recent content in PostgreSQL on Dapeng Zhang</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Tue, 29 Jul 2025 10:08:59 +0800</lastBuildDate><atom:link href="https://zhangdapeng.dev/tags/postgresql/index.xml" rel="self" type="application/rss+xml"/><item><title>could not open version file: /usr/local/var/postgres.old/PG_VERSION</title><link>https://zhangdapeng.dev/p/could-not-open-version-file-usr-local-var-postgres-old-pg_version/</link><pubDate>Tue, 29 Jul 2025 10:08:59 +0800</pubDate><guid>https://zhangdapeng.dev/p/could-not-open-version-file-usr-local-var-postgres-old-pg_version/</guid><description>&lt;p&gt;初次使用PostgreSQL发现了一个问题， 就是在使用mac中使用brew安装PostgreSQL时，会自动进行版本升级，但是再进行版本升级的时候会遇到如下错误&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;could not open version file: /usr/local/var/postgres.old/PG_VERSION&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;经过搜索，这里找到了解决办法如下地址&lt;/p&gt;
&lt;p&gt;&lt;code&gt;https://gist.github.com/giannisp/ebaca117ac9e44231421f04e7796d5ca&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;但是从内容上可以看到版本是从9.6.5到10.0&lt;br&gt;
Upgrade PostgreSQL 9.6.5 to 10.0 using Homebrew (macOS)&lt;/p&gt;
&lt;p&gt;本次分享下从9.6.10到10.3&lt;br&gt;
Upgrade PostgreSQL 9.6.10 to 10.3 using Homebrew (macOS)&lt;/p&gt;
&lt;p&gt;流程是一样的，但是记录下&lt;/p&gt;
&lt;h1 id="need-to-have-both-96x-and-latest-100-installed-and-keep-100-as-default"&gt;need to have both 9.6.x and latest 10.0 installed, and keep 10.0 as default
&lt;/h1&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew unlink postgresql
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew install &lt;span style="color:#f92672"&gt;[&lt;/span&gt;email protected&lt;span style="color:#f92672"&gt;]&lt;/span&gt; // 这一步如果已经安装了，则可以跳过
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew unlink &lt;span style="color:#f92672"&gt;[&lt;/span&gt;email protected&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew link postgresql
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="move-96x-db-files-to-another-directory"&gt;move 9.6.x db files to another directory
&lt;/h1&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mv /usr/local/var/postgres /usr/local/var/postgres96
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="init-new-database-using-103"&gt;init new database using 10.3
&lt;/h1&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;initdb /usr/local/var/postgres -E utf8
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="make-timezone-and-timezonesets-directories-available-for-96x-installation"&gt;make timezone and timezonesets directories available for 9.6.x installation
&lt;/h1&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir /usr/local/share/postgresql96
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cp -r /usr/local/share/postgresql/timezone /usr/local/share/postgresql96
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cp -r /usr/local/share/postgresql/timezonesets /usr/local/share/postgresql96
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="finally-the-actual-upgrade"&gt;finally the actual upgrade
&lt;/h1&gt;&lt;h1 id="-b-is-the-old-binary-dir--b-is-the-new-binary-dir"&gt;-b is the old binary dir, -B is the new binary dir
&lt;/h1&gt;&lt;h1 id="-d-is-the-old-data-dir--d-is-the-new-data-dir"&gt;-d is the old data dir, -D is the new data dir
&lt;/h1&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pg_upgrade -b /usr/local/Cellar/&lt;span style="color:#f92672"&gt;[&lt;/span&gt;email protected&lt;span style="color:#f92672"&gt;]&lt;/span&gt;/9.6.10/bin -B /usr/local/Cellar/postgresql/10.3/bin -d /usr/local/var/postgres96 -D /usr/local/var/postgres
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="start-103-to-check-that-upgrade-works"&gt;start 10.3 to check that upgrade works
&lt;/h1&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pg_ctl start -D /usr/local/var/postgres
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="cleanup-if-upgrade-was-successful"&gt;cleanup if upgrade was successful
&lt;/h1&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew uninstall &lt;span style="color:#f92672"&gt;[&lt;/span&gt;email protected&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;rm -rf /usr/local/var/postgres96
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;rm -rf /usr/local/share/postgresql96
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;一切OK&lt;/p&gt;</description></item><item><title>Ubuntu 12.04 LTS 安装 postgresql-9.3.1 全过程</title><link>https://zhangdapeng.dev/p/ubuntu-1204-lts-an-zhuang-postgresql-931-quan-guo-cheng/</link><pubDate>Tue, 24 Jun 2025 14:45:57 +0000</pubDate><guid>https://zhangdapeng.dev/p/ubuntu-1204-lts-an-zhuang-postgresql-931-quan-guo-cheng/</guid><description>&lt;p&gt;我的安装是源码安装，&lt;/p&gt;
&lt;p&gt;首先下载postgresql&lt;/p&gt;
&lt;p&gt;下载地址：&lt;a class="link" href="http://www.postgresql.org/download/linux/ubuntu/" target="_blank" rel="noopener"
 &gt;http://www.postgresql.org/download/linux/ubuntu/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;我下载的是postgresql-9.3.1这个版本的&lt;/p&gt;
&lt;p&gt;下载回来后直接解压&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;tar -zxvf postgresql-9.3.1.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd postgresql-9.3.1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;执行下面指令：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./configure
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这里有时候会遇到问题，我这里出现了下面这个错误提示&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;configure: error: readline library not found&lt;br&gt;
If you have readline already installed, see config.log for details on the&lt;br&gt;
failure. It is possible the compiler isnt looking in the proper directory.&lt;br&gt;
Use &amp;ndash;without-readline to disable readline support.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;经过我的半天的 折腾我终于找到了一个方法。&lt;/p&gt;
&lt;p&gt;第一步：更新Ubuntu的源&lt;/p&gt;
&lt;p&gt;去这里&lt;a class="link" href="http://wiki.ubuntu.org.cn/%E6%BA%90%E5%88%97%E8%A1%A8" target="_blank" rel="noopener"
 &gt;源列表&lt;/a&gt;，这里有更新源的方法，按照操作找到速度最快的源(在这里我选择的是&lt;em&gt;&lt;strong&gt;网易163更新服务器&lt;/strong&gt;&lt;/em&gt;)，然后修改source.list&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo vi /etc/source.list
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;执行下面的指令：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt-get update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;执行完之后，执行命令：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt-get install libreadline5-dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;会安装完我们需要的readline&lt;/p&gt;
&lt;p&gt;然后再执行下面指令：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./configure
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;make
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;make install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;最后会提示&lt;/p&gt;
&lt;p&gt;PostgreSQL installation complete.&lt;/p&gt;
&lt;p&gt;说明安装成功了。&lt;/p&gt;
&lt;p&gt;参考文章：&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="http://wiki.ubuntu.org.cn/PostgreSQL" target="_blank" rel="noopener"
 &gt;http://wiki.ubuntu.org.cn/PostgreSQL&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="http://www.postgresql.org/download/linux/ubuntu/" target="_blank" rel="noopener"
 &gt;http://www.postgresql.org/download/linux/ubuntu/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="http://wiki.ubuntu.org.cn/PostgreSQL" target="_blank" rel="noopener"
 &gt;http://wiki.ubuntu.org.cn/PostgreSQL&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="http://blog.csdn.net/wypblog/article/details/6863342" target="_blank" rel="noopener"
 &gt;http://blog.csdn.net/wypblog/article/details/6863342&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="http://blog.chinaunix.net/uid-23242876-id-2480272.html" target="_blank" rel="noopener"
 &gt;http://blog.chinaunix.net/uid-23242876-id-2480272.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="http://wiki.ubuntu.org.cn/%E6%BA%90%E5%88%97%E8%A1%A8" target="_blank" rel="noopener"
 &gt;http://wiki.ubuntu.org.cn/%E6%BA%90%E5%88%97%E8%A1%A8&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>