中文标题【设置 PostgreSQL 数据库】
1. 安装 PostgreSQL
如果你的系统中还没有安装 PostgreSQL 数据库,你需要先下载后进行安装。
在安装 PostgreSQL 时候的一些小经验:
- 在安装的时候提供的 密码(password )是针对 'postgres' 账户的,这个账户是 root-level 级别的账户。请记住这个账号的用户名和密码,在每次你登录 PostgreSQL 的时候,你都需要这个用户名和密码。
- PostgreSQL 数据库服务器的 默认端口(default port )是 5432。如果你希望修改 PostgreSQL 的默认端口,你需要确定你的新端口不会与系统中其他的服务使用的端口冲突。
- 选择与你地理位置相同的 locale 。
- 不要在安装完成后运行 Stack Builder 。
2. 创建数据库和数据库用户
一旦你成功的安装了 PostgreSQL 数据库:
- 创建一个数据库用户,例如
confluenceuser
。- 你的新用户必须能够 创建数据库对象(create database objects) 和必须具有 可以登录(can login) 权限。
- 你的新用户必须能够 创建数据库对象(create database objects) 和必须具有 可以登录(can login) 权限。
- 下一步,创建一个数据库(例如
confluence
):- Owner 是你新数据库的用户(例如:
confluenceuser
) - Character encoding 必须设置为
utf8
编码。 - Collation 也必须设置为
utf8
。其他collations,例如 "C",现在知道将会在 Confluence 使用的时候出现问题。
- Owner 是你新数据库的用户(例如:
你可以使用 pgAdmin 图形化界面来为你的修改提供帮助。
3. 安装 Confluence
请参考 Confluence Installation and Upgrade Guide 文档来参考 Confluence 如何一步一步的在你的系统上进行安装。
4. 输入你的数据库细节
在 Confluence 的设置安装向导中,将会指导你 Confluence 如何连接到你的数据库。请确定选择 "My own database"。
使用 JDBC 连接(默认)
JDBC 是推荐的连接你的 Confluence 到数据库中的方式。
Confluence 的安装向导将会提供给你下面 2 种连接选项:
- 简单 —— 这个是最简单的方式来连接你的 Confluence 到数据库中。
- 通过连接字符串 —— 使用这个选项,你需要配置特定的参数同时你还需要具有数据库连接方面的一些只是来构建正确的连接 URL。
基于你设置的类型,你需要提供下面的一些参数。
设置类型 | 字段 | 描述 |
---|---|---|
简单(Simple) | 主机名(Hostname) | T你数据库服务器使用的主机名或者 IP 地址。 |
简单(Simple) | 端口( Port) | 这个是 MySQL 端口。如果你在安装 PostgreSQL 的时候没有修改的话,默认端口是 5432 . |
简单(Simple) | 数据库名(Database name) | 这是你 Confluence 数据库的名称,按照上面的例子,名称为 |
通过连接字符串(By connection string) | 数据库 URL(Database URL) | 数据库 URL 使用的下面的格式:jdbc:postgresql://<server>:<port>/<database> 例如: 如果你需要使用 SSL 连接到数据库, |
同时需要(Both) | 用户名(Username) | 你连接数据库需要使用的用户名,在上面的示例中,用户名是 confluenceuser 。 |
同时需要(Both) | 用户密码(Password) | 你连接数据库需要使用的用户名密码。 |
使用 JNDI 数据源
如果你希望使用 JDNI数据源,请参考 Configuring a datasource connection 中的内容来进行配置。你需要在启动 Confluence 之前进行配置,在设置向导中,Confluence 只使用在你 Tomcat 配置中提供的选项。
5. 测试你的数据库连接
在你的数据库设置界面,有一个 测试连接(Test connection)按钮可以检查:
- Confluence 可以连接你的数据库服务器
- 数据库字符集的编码是否设置正确
- 你的数据库用户是否有正确的权限可以访问和使用数据库
一旦上面的测试成功了,单击 下一步(Next )来继续进行 Confluence 的安装进程。
如果 Confluence 和 PostgreSQL 分别在不同的服务器上,请参考 PostgreSQL documentation on how to set up pg_hba.conf 中的内容来确定 Confluence 和 PostgreSQL 之间能正常通信。
问题解决
- 如果 Confluence 提示没有 class 文件,你可能将你的 JDBC 驱动放置到了错误的文件夹。
- 如果你不能从你从 Confluence 中连接到 PostgreSQL ,并且这 2 个服务器分别在不同的机器上,可能是因为你 2 台机器上的防火墙阻止了你的连接,或者
pg_hba.conf
文件没有被正确配置。检查你的防火墙配置,能够允许端口 5432 能够正常通行,并且再次检查你的 hba configuration 配置文件。 - 下面的连接包含了一些你在使用 PostgreSQL 数据库连接的时候可能会遇到的常见问题,请参考: Known issues for PostgreSQL。