📌  相关文章
📜  db_1 |错误:数据库未初始化且未指定超级用户密码. (1)

📅  最后修改于: 2023-12-03 15:30:23.512000             🧑  作者: Mango

关于错误:"db_1 |错误:数据库未初始化且未指定超级用户密码."

这个错误提示表明在使用该数据库前,需要初始化并设置超级用户密码。

初始化数据库

要初始化数据库,请运行以下命令:

docker-compose run db_1 init

这将会初始化数据库并创建超级用户,需要按照提示输入用户名和密码。

设置超级用户密码

如果您已经初始化了数据库,但是忘记了超级用户密码,可以通过以下步骤重置密码:

  1. 进入已经运行的 Docker 容器:
docker exec -it db_1 bash
  1. 运行 Postgres 命令行工具:
psql
  1. 切换到超级用户并修改密码:
ALTER USER postgres WITH PASSWORD '<NEW_PASSWORD>';

请务必将 <NEW_PASSWORD> 替换成新的密码。

避免此错误

为了避免在操作数据库时遇到此错误,建议在 Dockerfile 和 docker-compose.yml 文件中设置默认的用户名和密码,并在初始化时使用它们创建超级用户。

version: '3.8'

services:
  db:
    image: postgres
    environment:
      POSTGRES_USER: myuser
      POSTGRES_PASSWORD: mypassword
    volumes:
      - dbdata:/var/lib/postgresql/data

volumes:
  dbdata:

通过这种方式,不必担心忘记设置超级用户密码,数据库也可以更加安全地使用。