当前位置: 首页 > 知识库问答 >
问题:

码头上的博士后。如何创建数据库和用户?

韩耘豪
2023-03-14

我正在尝试用docker创建简单的postgres服务器。我使用官方postgres图片作为容器的基础。我的Dockerfile包含以下命令:

FROM postgres
USER postgres
RUN /etc/init.d/postgresql start &&\
    psql --command "CREATE USER user WITH SUPERUSER PASSWORD 'user';" &&\
    createdb -O user app

当我尝试运行它时,我出现了一个错误:

psql:无法连接到服务器:没有这样的文件或目录服务器是否在本地运行并接受Unix域套接字"/var/run/postgresql/. s. PGSQL.5432"上的连接?

我做错了什么?

共有3个答案

常雅珺
2023-03-14

在入口点的脚本中也有同样的问题。以下是我的Dockerfile摘录

# init execution
ENTRYPOINT ["/usr/local/sbin/initpostgres.sh"]

intipostgres中使用以下命令。sh脚本

 su postgres -c "pg_ctl start -l /var/lib/postgresql/logpostgres"
 su postgres -c "createuser -s $OPENERPUSER"

在createuser命令之前添加睡眠1per@seanmcl建议更正对我有效:

 su postgres -c "pg_ctl start -l /var/lib/postgresql/logpostgres"
 sleep 1
 su postgres -c "createuser -s $OPENERPUSER"
章宏恺
2023-03-14

将pg_ctl与-w标志一起使用,以便在服务器启动时命令将完成。不再怀疑我们是否等得够久了。我们可以用同样的方法停止服务器

sudo -u postgres pg_ctl start -w -D ${PGDATA}

sudo -u postgres psql --command "CREATE USER user WITH SUPERUSER PASSWORD 'user';" &&\
sudo -u postgres createdb -O user app

sudo -u postgres pg_ctl stop -w
易元青
2023-03-14

博士后开始接受联系可能需要一些时间。按照您编写的方式,它将在start函数返回后立即调用CREATE USER。试着在那里睡觉,看看这是否仍然是一个问题。

 类似资料:
  • 我使用Linux Mint肉桂2.2.16。 在安装和运行Rails的过程中,我遇到了Postgres的问题。 我无法在我的常用用户名下使用任何东西,因此我使用 我无法获得任何与createuser一起工作的内容。

  • 我正在将postgres转换为Exasol,将在据称是超快的数据库上运行一些时间试验。Exasol有一个我正在使用的导入脚本,并得到一个“连接拒绝错误”。这是一个本地连接,视窗10和postgres 9.4 我仔细检查过的东西: 端口号为5432(可从PGAdmin查看) postgres处于活动状态,正在5432上收听(获取PID并看到它运行) 用户名和密码被重新输入了几次 尝试同时指定IPV4

  • 问题:是否可以在迁移脚本中创建一个新的DB,然后连接到它?怎么做? 我的场景:我试图在我的Java项目(使用Jersey2.4+Tomcat7+PostgreSQL 9.3.1+EclipseLink的RESTful应用程序)中使用flyway来管理使用Git的不同开发人员之间的更改。我编写了我的init脚本并运行它: 而且效果很好。问题是我不能用我的脚本创建新的DB。当我在脚本中包含以下一行时:

  • 问题内容: 问题: 是否可以在迁移脚本中创建一个新的数据库,然后连接到它?怎么样? 我的场景: 我正在尝试在Java项目(使用Jersey2.4 + tomcat 7 + PostgreSQL 9.3.1 + EclipseLink的RESTful应用程序)中使用flyway来管理使用git的不同开发人员之间的更改。我写了自己的初始化脚本,并运行了: 而且效果很好。问题是我无法使用脚本创建新的数据

  • 我直接下载了C:\中的derby,并设置了DERBY_INSTALL和CLASSPATH变量: 因此它显示ij>,并且我能够使用命令行SQL语句创建数据库。但我必须使用Java代码创建数据库及其表。所以我在下面的源代码,但我不知道在哪里粘贴它和如何运行它。当我将它粘贴到db-derby-10.9.1.0-bin>bin文件夹中,并尝试使用'java MainClass komaldb c:\'在该

  • 安装oracle 19C后,它要求用户名和密码。输入什么,以及如何创建一个具有所有权限和身份验证权限的新用户。(注意,我试图通过登录SYSDBA创建用户命令,但它显示错误为无效的普通用户或角色名.在这里输入图像描述 [在此处输入图像描述][2]