Skip to end of metadata
Go to start of metadata

中文标题【设置 SQL Server 数据库】


本页面提供了 Confluence 如何配置使用 Microsoft SQL Server 数据库的相关信息。

设置准备

在开始前,请检查:

  • 请查看 Supported Platforms 页面来获得 Confluence 系统支持的 SQL Server 数据库版本。你需要在安装 Confluence 之前升级你的 Oracle 数据库。
  • 如果你从其他的数据库中迁移到使用 SQL Server 数据库,包括你从嵌入的内置评估数据库迁移到 Oracle,在进行安装之前,请阅读 Migrating to Another Database 中的内容。

1. 安装 SQL Server

如果你还没有在安装可以连接的 Microsoft SQL Server 数据库,请先下载后进行安装。请参考 MSDN 上 Installation for SQL Server 的指南。

SQL Server 允许有 2 种的授权模式:SQL Server Authentication 和 Windows Authentication。为了让你的 Confluence 能够顺利连上你的数据库,你需要设置你的 SQL Server 服务器使用混合授权模式( SQL Server 和 Windows 模式)。这一步通常可以在 Properties > Security > Server Authentication 中找到和配置。



2. 创建一个数据库和数据库用户

一旦你成功安装了 SQL Server 服务器,请按照下面的方法为你的 Confluence 创建数据库用户和数据库:

  1. 使用你的 SQL 管理员权限,创建一个新的数据库(例如 confluence)。
  2. 为数据库设置默认的字符集为 SQL_Latin1_General_CP1_CS_AS (大小写敏感)。

    ALTER DATABASE <database-name> COLLATE SQL_Latin1_General_CP1_CS_AS

    如果你看到了 'database could not be exclusively locked to perform the operation' 错误,你需要禁止其他用户连接数据库,通过设置数据库模式为单一用户模式。

    ALTER DATABASE <database-name> SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
    <your ALTER DATABASE query>
    ALTER DATABASE <database-name> SET MULTI_USER;
  3. 检查数据库的隔离级别 READ_COMMITTED_SNAPSHOT 设置为 ON。

    SELECT is_read_committed_snapshot_on FROM
    sys.databases WHERE name= 'database-name' 

    如果查询返回的结果是 1,那么 READ_COMMITTED_SNAPSHOT 设置为 ON,你已经正确完成设置了。

    如果查询返回的结果是 0, READ_COMMITTED_SNAPSHOT 选项为 OFF,你需要运行下面的命令来完成设置:

    ALTER DATABASE <database-name>
       SET READ_COMMITTED_SNAPSHOT ON
       WITH ROLLBACK IMMEDIATE;
  4. 使用你的 SQL 管理员权限,为 Confluence 创建一个新的 SQL 用户账户(例如 confluenceuser)。

  5. 针对数据库表,为这个用户赋予,创建,读取和写入的权限。Confluence 必须能够创建自己的 schema。参考 SQL Server 文档来了解如何进行这个操作。

3. 安装 Confluence 

请参考 Confluence Installation and Upgrade Guide 文档来参考 Confluence 如何一步一步的在你的系统上进行安装。

4. 输入你的数据库细节

Confluence 的安装向导将会指导你一步一步的在 Confluence 中配置安装 SQL Server 数据库。

使用 JDBC 连接(默认)

JDBC 是推荐的连接你的 Confluence 到数据库中的方式。

Confluence 的安装向导将会提供给你下面 2 种连接选项:

  • 简单 —— 这个是最简单的方式来连接你的 Confluence 到数据库中。
  • 通过连接字符串 —— 使用这个选项,你需要配置特定的参数同时你还需要具有数据库连接方面的一些只是来构建正确的连接 URL。

基于你设置的类型,你需要提供下面的一些参数。

设置类型字段描述
简单(Simple)主机名(Hostname)你数据库服务器使用的主机名或者 IP 地址。
简单(Simple)端口( Port)SQL Server 数据服务器的端口。如果你在安装 SQL Server 的时候没有修改的话,默认端口是 1433
简单(Simple)数据库名(Database name)这是你 Confluence 数据库的名称,按照上面的例子,名称为 confluence
简单(Simple)实例名(Instance name)

希望找到你的实例名称,连接你的数据库后运行下面的命令:

select @@SERVICENAME;
SELECT SERVERPROPERTY('InstanceName');


如果你默认的实例名称命名为 SQL Server,你不需要指定这个参数。

通过连接字符串(By connection string)数据库 URL(Database URL)数据库的 URL 使用下面的格式:
jdbc:sqlserver://<hostname>:<port>;database=<database>

例如:
jdbc:sqlserver://yourserver:1433;database=confluence

同时需要(Both)用户名(Username)你连接数据库需要使用的用户名,在上面的示例中,用户名是  confluenceuser
同时需要(Both)用户密码(Password)你连接数据库需要使用的用户名密码。

使用 JNDI 数据源

如果你希望使用 JDNI数据源,请参考 Configuring a datasource connection 中的内容来进行配置。你需要在启动 Confluence 之前进行配置,在设置向导中,Confluence 只使用在你 Tomcat 配置中提供的选项。

5. 测试你的数据库连接

在你的数据库设置界面,有一个 测试连接(Test connection)按钮可以检查:

  • Confluence 可以连接你的数据库服务器
  • 数据库字符集和隔离级别是正确的
  • 你的数据库用户有正确的数据库权限

一旦上面的测试成功了,单击 下一步(Next )来继续进行 Confluence 的安装进程。

数据库驱动修改

从 Confluence 6.4 开始,我们使用官方的 Microsoft SQL Server  JDBC 驱动来替换掉开源的  jTDS 驱动。从这个版本开始所有的安装都会默认使用官方的 Microsoft JDBC Driver for SQL Server 。

已经存在的实例将会继续使用  jTDS 驱动。我们将会帮助你整合到 Microsoft 官方的 JDBC 驱动。

问题解决

  • 如果你收到了下面的错误信息,检查你给出的 confluenceuser 用户具有所有需要的数据库权限,当你使用 localhost 进行连接的时候。

    Could not successfully test your database: : Server connection failure during transaction. Due to underlying exception: 'java.sql.SQLException: Access denied for user 'confluenceuser'@'localhost' (using password: YES)'


  • No labels