【问题标题】:how to add database in a new cluster in postgreSQL?如何在 postgreSQL 的新集群中添加数据库?
【发布时间】:2018-07-12 19:36:44
【问题描述】:

我正在使用

sudo pg_createcluster -u=$USER --datadir=candisDatabase -l=candisDatabase/candis.psql.log 9.6 candisCluster

创建一个新的数据库集群,指定目录为candisDatabase,在账户$USER(即'rupav')下。

pg_lsclusters
Ver Cluster        Port Status Owner    Data directory               Log file
9.6 candisCluster2 5433 online   rupav    candisDatabase               candisDatabase/candis.psql.log
9.6 main           5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log

集群已成功创建,并且能够使用pg_ctlcluster 9.6 candisCluster2 start 成功运行/启动新集群和服务器 candisCluster2

以下是新集群的状态(使用pg_ctlcluster 9.6 candisCluster2 status):

/usr/lib/postgresql/9.6/bin/postgres "-D" "candisDatabase" "-c" "config_file=/etc/postgresql/9.6/candisCluster2/postgresql.conf"

现在服务器正在监听 5433 端口,我如何在给定的集群中添加创建角色、数据库和密码。默认情况下(postgresql 安装后)我可以通过sudo -u postgres psql 进入 psql shell。

简而言之,我希望将数据目录中的所有表都指定为candisDatabase,它由不同于postgres 的用户拥有。

系统详情: 我在“Ubuntu 17.10(Oracle VM,主机是 Windows)”上,postgresql 版本是 9.6

【问题讨论】:

  • 鉴于您指定了用户,您可能不想 su 到 postgres,而是 su 到用户。

标签: postgresql psql postgresql-9.6 pg-ctl


【解决方案1】:

鉴于您指定的用户不想 su 到 postgres,而是 su 到您指定的用户。

如果你只是这样做

psql "port=5433 dbname=postgres"

【讨论】:

  • 好的,因为我已经以用户 'rupav' 身份登录,所以我输入了psql,输出结果为:“psql: FATAL: 角色“rupav”不存在”
  • 需要指定新集群的端口号
  • 运行psql "port=5433 dbname=postgres"的输出:``` psql:无法连接到服务器:没有这样的文件或目录服务器是否在本地运行并接受Unix域套接字上的连接“/var/run/postgresql /.s.PGSQL.5433”? ```
  • pg_lsclusters 当前输出:``` Ver Cluster Port Status Owner Data directory 日志文件 9.6 candisCluster 5433 在线 rupav /home/opensource/candis/candisDatabase /home/opensource/candis/candisDatabase/candis.psql。 log 9.6 main 5432 在线 postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log ```
猜你喜欢
  • 2018-12-29
  • 2023-03-14
  • 2017-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多