我正在做两个不同的项目,需要两个不同版本的postgres(12和14),这两个版本都是在安装过程中从源代码构建的。如何配置我的系统以在同一台计算机上安装两个版本,以及如何在它们之间切换?
dsf9zpds1#
配置和初始化文件时,请确保每次将位置设置为不同的目录。假设我想安装pgsql 13和15。对于下面的代码块,我将pgsql 13配置为安装在名为pgsql-13的目录中。
pgsql-13
git clone https://github.com/postgres/postgres.git cd postgres git checkout REL_13_STABLE ./configure --prefix=/usr/local/pgsql-13 make sudo mkdir /usr/local/pgsql-13 sudo chown {your username} /usr/local/pgsql-13 make install export PATH=/usr/local/pgsql-13/bin/:$PATH export PGDATA=/usr/local/pgsql-13/bin/data
对于pgsql 15,我想将其安装在一个名为pgsql-15的不同目录中。
pgsql-15
git checkout REL_15_STABLE ./configure --prefix=/usr/local/pgsql-15 make sudo mkdir /usr/local/pgsql-15 sudo chown {your username} /usr/local/pgsql-15 make install export PATH=/usr/local/pgsql-15/bin/:$PATH export PGDATA=/usr/local/pgsql-15/bin/data
下一步是初始化数据库并更改其中一个数据库的端口号(仅当您希望能够同时运行两个服务器时)。
cd /usr/local/pgsql-13 bin/initdb {your database name} vim {your database name}/postgresql.conf
运行vim后,导航到第64行附近,您可以看到端口集#port = 5432。删除hashtag #并将端口号更改为其他值,例如5431。保存并退出编辑器以启动服务器并使用以下命令创建数据库:
vim
#port = 5432
#
bin/pg_ctl -D {your database name} -l logfile start bin/createdb --port=5431 {your database name} bin/psql --port=5431 {your database name}
对于其他版本也是如此(如果您没有手动更改端口号,则默认端口号为5432):
cd /usr/local/pgsql-15 bin/initdb {your database name} bin/pg_ctl -D {your database name} -l logfile start bin/createdb --port=5432 {your database name} bin/psql --port=5432 {your database name}
如果您没有同时运行两个服务器,则不必更改任何一个版本的端口号,但请确保在使用bin/pg_ctl -D {your database name} -l logfile stop运行另一个服务器之前停止另一个服务器。
bin/pg_ctl -D {your database name} -l logfile stop
y1aodyip2#
看看这个网站-> https://simondosda.github.io/posts/2021-05-24-docker-postgres.html您可以使用Docker在计算机上运行不同版本的PostgreSQL。Docker允许你在独立的容器中运行程序,这些容器不会相互影响。您可以使用两种方法来使用Docker运行不同版本的PostgreSQL:1.使用docker run命令并给予你想要的版本号。例如,PostgreSQL 12的postgres:12。您还可以为容器给予名称、密码和数据库名称。要更改版本,您必须停止并删除旧容器,并使用不同的版本号启动新容器。1.使用docker-compose命令并编写一个包含两个版本信息的文件。例如,您可以在文件中写入postgres:12和postgres:14,并为每个端口给予不同的端口。还可以为每个容器给予名称、密码和数据库名称。要启动这两个版本,您只需要一个命令。要连接到任一版本,您必须使用正确的端口号。
uqdfh47h3#
下面的步骤可以让你在不同的postgres版本之间切换1.为数据库群集创建新目录
sudo mkdir /usr/local/pgsql12/data sudo mkdir /usr/local/pgsql14/data
1.初始化数据库群集
/usr/local/pgsql12/bin/initdb -D /usr/local/pgsql12/data /usr/local/pgsql14/bin/initdb -D /usr/local/pgsql14/data
1.启动PostgreSQL服务器
/usr/local/pgsql12/bin/pg_ctl -D /usr/local/pgsql12/data -l logfile12 start /usr/local/pgsql14/bin/pg_ctl -D /usr/local/pgsql14/data -l logfile14 start
1.在PostgreSQL版本之间切换要在PostgreSQL版本之间切换,您需要停止当前运行的服务器,然后启动另一个版本的服务器。
/usr/local/pgsql12/bin/pg_ctl -D /usr/local/pgsql12/data stop /usr/local/pgsql14/bin/pg_ctl -D /usr/local/pgsql14/data stop
yk9xbfzb4#
您可以为每个数据库版本使用不同的端口。可以通过编辑port文件中的port字段来编辑postgresql.conf文件中的Postgres端口。或者,在启动数据库服务器时,可以使用以下命令指定端口:
port
postgresql.conf
pg_ctl -D /path/to/postgres/data -l logfile -p <your_port_number> start
此命令将在指定的端口上启动数据库服务器。
hjqgdpho5#
PostgreSQL版本管理器pgenv卸载当前的PostgreSQL安装,然后按照自述说明安装pgenv安装后:使用命令pgenv available获取所有可用的postgres版本以进行安装。使用pgenv build <version>安装多个版本的PostgreSQL。然后,您可以使用pgenv use <version>或pgenv switch <version>命令来使用和切换多个PostgreSQL版本。
pgenv available
pgenv build <version>
pgenv use <version>
pgenv switch <version>
col17t5w6#
首先,将不同的版本保存在完全独立的目录中。如果你想分别运行它们,切换到终端中相应版本的目录,并运行以下命令:-> bin/pg_ctl -D -l日志文件启动要阻止它,就跑-> bin/pg_ctl -D -l日志文件停止现在,如果您想同时运行这两个版本,请更改服务器运行的端口。为此,打开postgresql.conf文件,该文件位于您的目录中,并将port字段更改为您想要的任何内容,只需确保两个版本中的两个端口都不同。您可以使用上面的命令从两者各自的目录中启动服务器。
6条答案
按热度按时间dsf9zpds1#
配置和初始化文件时,请确保每次将位置设置为不同的目录。假设我想安装pgsql 13和15。对于下面的代码块,我将pgsql 13配置为安装在名为
pgsql-13
的目录中。对于pgsql 15,我想将其安装在一个名为
pgsql-15
的不同目录中。下一步是初始化数据库并更改其中一个数据库的端口号(仅当您希望能够同时运行两个服务器时)。
运行
vim
后,导航到第64行附近,您可以看到端口集#port = 5432
。删除hashtag#
并将端口号更改为其他值,例如5431。保存并退出编辑器以启动服务器并使用以下命令创建数据库:对于其他版本也是如此(如果您没有手动更改端口号,则默认端口号为5432):
如果您没有同时运行两个服务器,则不必更改任何一个版本的端口号,但请确保在使用
bin/pg_ctl -D {your database name} -l logfile stop
运行另一个服务器之前停止另一个服务器。y1aodyip2#
看看这个网站-> https://simondosda.github.io/posts/2021-05-24-docker-postgres.html
您可以使用Docker在计算机上运行不同版本的PostgreSQL。Docker允许你在独立的容器中运行程序,这些容器不会相互影响。您可以使用两种方法来使用Docker运行不同版本的PostgreSQL:
1.使用docker run命令并给予你想要的版本号。例如,PostgreSQL 12的postgres:12。您还可以为容器给予名称、密码和数据库名称。要更改版本,您必须停止并删除旧容器,并使用不同的版本号启动新容器。
1.使用docker-compose命令并编写一个包含两个版本信息的文件。例如,您可以在文件中写入postgres:12和postgres:14,并为每个端口给予不同的端口。还可以为每个容器给予名称、密码和数据库名称。要启动这两个版本,您只需要一个命令。要连接到任一版本,您必须使用正确的端口号。
uqdfh47h3#
下面的步骤可以让你在不同的postgres版本之间切换
1.为数据库群集创建新目录
1.初始化数据库群集
1.启动PostgreSQL服务器
1.在PostgreSQL版本之间切换
要在PostgreSQL版本之间切换,您需要停止当前运行的服务器,然后启动另一个版本的服务器。
yk9xbfzb4#
您可以为每个数据库版本使用不同的端口。
可以通过编辑
port
文件中的port
字段来编辑postgresql.conf
文件中的Postgres端口。或者,在启动数据库服务器时,可以使用以下命令指定端口:
此命令将在指定的端口上启动数据库服务器。
hjqgdpho5#
PostgreSQL版本管理器pgenv
卸载当前的PostgreSQL安装,然后按照自述说明安装pgenv
安装后:使用命令
pgenv available
获取所有可用的postgres版本以进行安装。使用pgenv build <version>
安装多个版本的PostgreSQL。然后,您可以使用
pgenv use <version>
或pgenv switch <version>
命令来使用和切换多个PostgreSQL版本。col17t5w6#
首先,将不同的版本保存在完全独立的目录中。
如果你想分别运行它们,
切换到终端中相应版本的目录,并运行以下命令:
-> bin/pg_ctl -D -l日志文件启动
要阻止它,就跑
-> bin/pg_ctl -D -l日志文件停止
现在,如果您想同时运行这两个版本,请更改服务器运行的端口。
为此,打开postgresql.conf文件,该文件位于您的目录中,并将port字段更改为您想要的任何内容,只需确保两个版本中的两个端口都不同。
您可以使用上面的命令从两者各自的目录中启动服务器。