# 如何从数据库获取密码？

**URL:** https://meta.discourse.org/t/how-to-get-a-password-from-database/253712
**Category:** Self-hosting
**Created:** [2023年二月1日 16:40 UTC](https://meta.discourse.org/t/how-to-get-a-password-from-database/253712 "2023-02-01T16:40:23Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![moschino](https://avatars.discourse-cdn.com/v4/letter/m/e19b73/32.png) [@moschino](https://meta.discourse.org/u/moschino)
#### Post date: [2023年二月1日 16:40 UTC](https://meta.discourse.org/t/how-to-get-a-password-from-database/253712/1 "2023-02-01T16:40:23Z")

</div>

您好！在安装 Discourse (Docker) 时，我看不到数据库设置的密码。  
我需要它，因为我想使用远程连接到数据库，并且我认为 Discourse 为所有 Docker 镜像设置了一个密码。

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [2023年二月1日 17:16 UTC](https://meta.discourse.org/t/how-to-get-a-password-from-database/253712/2 "2023-02-01T17:16:12Z")

</div>

你好 moschino 👋,

我不太懂技术方面的东西，但我想当你进入容器后，可以使用用户名 `discourse` 连接到数据库，无需密码。

如果这对你有帮助，请告诉我：

```bash
./launcher enter app

```

```plaintext
su - discourse

```

```plaintext
psql

```

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2023年二月1日 21:21 UTC](https://meta.discourse.org/t/how-to-get-a-password-from-database/253712/3 "2023-02-01T21:21:03Z")

</div>

> [@moschino](#):
>
> 我需要它，因为我想使用远程连接到数据库

你为什么要这样做？通常情况下，数据浏览器是更好的方法。

默认情况下，数据库不会暴露到端口。

如果你真的想将数据库暴露给全世界，请使用双容器设置（`discourse-setup --two-container`）重新安装。在新的服务器上执行此操作最简单，但也有关于如何迁移的主题。

这几乎肯定是个坏主意。请使用数据浏览器或 API。

参见 [Run Data Explorer queries with the Discourse API](https://meta.discourse.org/t/run-data-explorer-queries-with-the-discourse-api/120063)

---

<div class="post-metadata">

### Author: ![satonotdead](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/satonotdead/32/447830_2.png) [@satonotdead](https://meta.discourse.org/u/satonotdead)
#### Post date: [2023年五月28日 17:18 UTC](https://meta.discourse.org/t/how-to-get-a-password-from-database/253712/4 "2023-05-28T17:18:08Z")

</div>

config/database.yml 的良好内容是什么？可以分享一个生产环境的示例吗？

我没有在那里看到数据库，Ruby 在执行某些任务（例如导出 `override_translations`）时失败。我怀疑我的安装有问题。

目前，我只在 `config/database.yml` 中看到开发和测试数据库，我想将其修复为当前正在工作的数据库架构 🙂

> _我可以在容器化的 Discourse 实例中使用 psql 读取生产数据库。_

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2023年五月28日 19:08 UTC](https://meta.discourse.org/t/how-to-get-a-password-from-database/253712/5 "2023-05-28T19:08:07Z")

</div>

您是如何安装 discourse 的？

您想解决什么问题？

> [@satonotdead](#):
>
> 并且我想将其实际修复到当前数据库工作模式

有什么证据表明有问题？

您是否看到  
`rake db:migrate`

会做什么？

数据库名称在环境变量中。

---

<div class="post-metadata">

### Author: ![satonotdead](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/satonotdead/32/447830_2.png) [@satonotdead](https://meta.discourse.org/u/satonotdead)
#### Post date: [2023年五月28日 21:30 UTC](https://meta.discourse.org/t/how-to-get-a-password-from-database/253712/6 "2023-05-28T21:30:00Z")

</div>

> [@pfaffman](#):
>
> 有什么证据表明有问题？

[我无法导出 es\_XX 自定义语言](https://meta.discourse.org/t/export-customized-text-from-database-into-yml/53760/8?u=matenauta)，我怀疑这可能与错误的配置有关，但随后我看到生产密码和主机似乎没有在 yml 文件中声明。

_我曾尝试修改 LANG 和 DISCOURSE\_DEFAULT\_LOCALE，但这应该不够。_

目前我设置了 `LANG = en_US.UTF-8` 和 `DISCOURSE_DEFAULT_LOCALE = es`（这允许我通过 [trust\_level on custom-locale issue](https://meta.discourse.org/t/trust-level-names-in-spanish/232351) 的解决方法）。

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2023年五月28日 22:14 UTC](https://meta.discourse.org/t/how-to-get-a-password-from-database/253712/7 "2023-05-28T22:14:48Z")

</div>

这似乎不是标准安装。

---

<div class="post-metadata">

### Author: ![satonotdead](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/satonotdead/32/447830_2.png) [@satonotdead](https://meta.discourse.org/u/satonotdead)
#### Post date: [2023年五月29日 02:26 UTC](https://meta.discourse.org/t/how-to-get-a-password-from-database/253712/8 "2023-05-29T02:26:06Z")

</div>

是的，但是我认为我可能混淆了开发环境和生产环境，或者其他什么地方出了问题。

也许我的自定义区域设置字符串中的表情符号有问题，我会检查一下。
