# Installation de MySQL ou MariaDb

La plateforme Archimage fonctionne indifférement avec MySQL et MariaDB, il suffira de le préciser dans le fichier de configuration.

Pour installer [MySQL par ici](#bkmrk-mysql), pour [MariaDB par là](#bkmrk-mariadb)

---

### MYSQL

#### Installation

En ligne de commande :

```shell
sudo apt update && sudo apt install mysql-server
```

S'assurer que le service s'est correctement installé :

```bash
sudo service mysql status
```

Nous recommandons d'installer la version sécurisée via

```bash
sudo mysql_secure_installation
```

#### Création d'un utilisateur

Se connecter en ligne de commande à MySQL

```bash
sudo mysql -p -u root
```

Puis créer un utilisateur, une base de données et lui affecter les droits :

```mysql
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'StrongPassword123!';

CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';

FLUSH PRIVILEGES;
```

Veuillez bien noter ses informations ils seront demandés par l'application dans le fichier de configuration.

<span style="text-decoration: underline;">Optionnel : </span>

Si vous comptez avoir des centaines de milliers d'enregistrements il est conseiller de rajouter de modifier la variable **sort\_buffer\_size**

```bash
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
```

et rajouter

```
[mysqld]
sort_buffer_size=8192k
```

Et relancer le service

```bash
sudo service mysql restart
```

---

---

### MariaDb

#### Installation

En ligne de commande :

```shell
sudo apt update && sudo apt install mariadb-server mariadb-client -y
```

S'assurer que le service s'est correctement installé :

```bash
sudo service mariadb status
```

Nous recommandons d'installer la version sécurisée via

```bash
sudo mysql_secure_installation
```

Pour avoir la version :

```
mariadb --version
```

#### Création d'un utilisateur

Se connecter en ligne de commande à MySQL

```bash
sudo mariadb -p -u root
```

Puis créer un utilisateur, une base de données et lui affecter les droits (veuillez remplacer les données génériques de l'utilisateur le mot de passe) :

```mysql
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'StrongPassword123!';

CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci;

GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';

FLUSH PRIVILEGES;
```

Veuillez bien noter ses informations ils seront demandés par l'application dans le fichier de configuration.

<span style="text-decoration: underline;">Optionnel : </span>

Si vous comptez avoir des centaines de milliers d'enregistrements il est conseiller de rajouter de modifier la variable **sort\_buffer\_size**

```bash
sudo nano /etc/mysql/mariadb.conf.d/99-custom.cnf
```

et rajouter

```
[mysqld]
sort_buffer_size=8192k
```

Et relancer le service

```bash
sudo service mariadb restart
```