dependency-track/docs/_docs/getting-started/database-support.md

66 lines
2.1 KiB
Markdown
Raw Normal View History

2018-02-26 01:12:24 -06:00
---
title: Database Support
category: Getting Started
chapter: 1
2018-03-25 20:20:40 -05:00
order: 6
2018-02-26 01:12:24 -06:00
---
Dependency-Track includes an embedded H2 database enabled by default. The intended purpose of this
database is for quick evaluation, testing, and demonstration of the platform and its capabilities.
> The embedded H2 database is not intended for production use.
2018-02-27 17:22:18 -06:00
Dependency-Track supports the following database servers:
2018-02-27 17:20:59 -06:00
* Microsoft SQL Server 2012 and higher
2018-11-11 22:39:52 -06:00
* MySQL 5.6 and 5.7
2018-03-07 17:48:37 -06:00
* PostgreSQL 9.0 and higher
2018-02-27 17:20:59 -06:00
2018-02-26 10:14:43 -06:00
To change database settings, edit `application.properties` found in the Dependency-Track data directory.
2018-02-26 01:12:24 -06:00
2018-02-27 15:48:51 -06:00
#### Microsoft SQL Server Example
```ini
alpine.database.mode=external
alpine.database.url=jdbc:sqlserver://localhost:1433;databaseName=dtrack;sendStringParametersAsUnicode=false
2018-02-27 15:48:51 -06:00
alpine.database.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
alpine.database.username=dtrack
alpine.database.password=password
```
2018-02-26 01:12:24 -06:00
#### MySQL Example
```ini
alpine.database.mode=external
alpine.database.url=jdbc:mysql://localhost:3306/dtrack?autoReconnect=true&useSSL=false
alpine.database.driver=com.mysql.jdbc.Driver
alpine.database.username=dtrack
alpine.database.password=password
2018-02-27 15:48:51 -06:00
```
2018-03-07 17:48:37 -06:00
For MySQL, it is necessary to remove 'NO_ZERO_IN_DATE' and 'NO_ZERO_DATE' from the sql-mode prior
to creating the Dependency-Track database. It's also necessary to add 'ANSI_QUOTES' to the sql-mode.
Refer to the MySQL documentation for details.
There are several ways to change this configuration, however the recommended way is to modify the
MySQL configuration (typically my.ini or similar) with the following:
```ini
[mysqld]
sql_mode="ANSI_QUOTES,STRICT_TRANS_TABLES,ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
```
2018-11-11 22:39:52 -06:00
MySQL will erroneously report index key length violations ("Specified key was too long"), when infact the multi-byte
key length is lower than the actual value. If UTF-8 support is required, do not use MySQL.
2018-03-07 17:48:37 -06:00
#### PostgreSQL Example
```ini
alpine.database.mode=external
alpine.database.url=jdbc:postgresql://localhost:5432/dtrack
alpine.database.driver=org.postgresql.Driver
alpine.database.username=dtrack
alpine.database.password=password
```