summaryrefslogtreecommitdiff
path: root/doc/en_US/mysql-configuration.markdown
blob: 27d5141d8986690505ef2f94848e20c7d5d5ea75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
MySQL/MariaDB Configuration
===========================

By default Kanboard use Sqlite to stores its data.
However it's possible to use MySQL or MariaDB instead of Sqlite.

Requirements
------------

- MySQL server
- The PHP extension `pdo_mysql` installed

Note: Kanboard is tested with **MySQL >= 5.5 and MariaDB >= 10.0**

MySQL configuration
-------------------

### Create a database

The first step is to create a database on your MySQL server.
By example, you can do that with the command line mysql client:

```sql
CREATE DATABASE kanboard;
```

### Create a config file

The file `config.php` should contains those values:

```php
<?php

// We choose to use MySQL instead of Sqlite
define('DB_DRIVER', 'mysql');

// MySQL parameters
define('DB_USERNAME', 'REPLACE_ME');
define('DB_PASSWORD', 'REPLACE_ME');
define('DB_HOSTNAME', 'REPLACE_ME');
define('DB_NAME', 'kanboard');
```

Note: You can also rename the template file `config.default.php` to `config.php`.

### Importing SQL dump (alternative method)

For the first time, Kanboard will run one by one each database migration and this process can take some time according to your configuration.

To avoid any potential timeout you can initialize the database directly by importing the SQL schema:

```bash
mysql -u root -p my_database < app/Schema/Sql/mysql.sql
```

The file `app/Schema/Sql/mysql.sql` is a SQL dump that represents the last version of the database.

If you would like to use Unix socket connection, try this:

```php
define('DB_HOSTNAME', '127.0.0.1;unix_socket=/var/run/mysqld/mysqld.sock');
```

SSL configuration
-----------------

These parameters have to be defined to enable the MySQL SSL connection:

```php
// MySQL SSL key
define('DB_SSL_KEY', '/path/to/client-key.pem');

// MySQL SSL certificate
define('DB_SSL_CERT', '/path/to/client-cert.pem');

// MySQL SSL CA
define('DB_SSL_CA', '/path/to/ca-cert.pem');
```