This tutorial is available in other languages. Help translate more

English /

# Installeer iRedMail met een externe MySQL server

Attention

Bekijk onze lichtgewicht on-premise e-mail archiveringsoftware ontwikkeld door het iRedMail team: Spider Email Archiver.

## Samenvatting

Dit artikel legt uit hoe een iRedMail server versie 0.9.6 opzetten met een al-bestaande externe MySQL server.

We gebruiken onderstaande IP adressen in onze voorbeeldinstallatie:

- `192.168.1.100`: Externe MySQL server.
- `192.168.1.200`: iRedMail server. We gaan hierop de nieuwste iRedMail-versie installeren.

iRedMail zal geen MySQL server installeren (RPM/DEB package) op de localhost met connectie tot de externe database. MySQL server, maar MySQL client tools zijn nog steeds nodig voor de connectie met de externe database.

## Benodigdheden

In ons voorbeeld bevindt de MySQL server zich op `192.168.1.100`. Het moet externe connecties aanvaarden van de iRedMail server VOORDAT we beginnen met de installatie van iRedMail. We moeten een nieuwe SQL gebruiker creëren met password en de nodige toegang voor remote login van de iRedMail server (`192.168.1.200` in ons geval.

- Wees zeker dat je externe MySQL server verbindingen accepteerd die van de iRedMail server komen. Je kunt het verifieëren met commando `netstat`:

    # netstat -ntlp | grep 3306
    tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2479/mysqld

Als de MySQL server alleen maar luistert naar 127.0.0.1, bewerk dan de parameter `bind-address` in het MySQL configuratiebestand `my.cnf` om zeker te zijn dat het luistert naar onderstaande IPv4 adressen, moet je de MySQL service herstarten.

- Op Red Hat Enterprise Linux, CentOS, openSUSE, OpenBSD moet je `/etc/my.cnf`. bewerken
- Op Debian, Ubuntu, moet je `/etc/mysql/my.cnf`. bewerken
- Op FreeBSD, moet je `/var/db/mysql/my.cnf`. bewerken

    # Als je de comment bij deze parameter weglaat, luistert het naar alle IPv6-adressen
    bind-address = 0.0.0.0

- Zorg ervoor dat de externe MySQL server zijn verzoeken niet worden geblokkeerd door een network firewall zoals iptables (Linux), ipfw (FreeBSD) of PF (OpenBSD).

- Creëer een nieuwe SQL user (`admin_iredmail`) met een password (`admin_password`) en alle priviliges op de externe MySQL server (natuurlijk moet je ook daarvoor een ander sterk paswoord gebruiken):

  Warning

  Deze SQL gebruiker zal worden gebruikt voor dagenlijkse backup, delete het alstublieft niet. na je installatie van iRedMail.

    -- Geef volgende commando's in op de MySQL server als root gebruiker
    GRANT ALL PRIVILEGES ON *.* TO 'admin_iredmail'@'192.168.1.200' IDENTIFIED BY 'admin_password' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    FLUSH HOSTS;

Met bovenstaande commando's wordt MySQL user `admin_iredmail` toegelaten om te communiceren met IP adres `192.168.1.200` met password `admin_password`.

Opmerkingen:

- `WITH GRANT OPTION` in bovenstaand SQL commando is vereist.
- Natuurlijk kan je `root` of een andere MySQL gebruikersnaam gebruiken voor het SQL commando, maar verschillende gebruikersnamen gebruiken voor verschillende gebruikers zorgt ervoor dat je makkelijker begrijpt waarvoor elke gebruiker dient. Zorgt voor minder verwarring met de staandaard `root` gebruiker.
- Je moet `192.168.1.200` veranderen met het echte IP adres van je iRedMail server in bovenstaand commando.

Als je al eerder hebt geprobeerd om iRedMail te installeren met deze externe MySQL server, neem dan eerst een backup van de externe MySQL server. Vervolgens drop en delete je gerelateerde MySQL gebruikers van je vorige installatie, want die zullen automatisch worden opgesteld door iRedMail op je externe MySQL server:

    -- Geef volgende commando's in op de MySQL server als root gebruiker
    DROP DATABASE amavisd;
    DROP DATABASE iredadmin;
    DROP DATABASE iredapd;
    DROP DATABASE roundcubemail;
    DROP DATABASE sogo;
    DROP DATABASE vmail;

    DROP USER 'amavisd'@'192.168.1.200';
    DROP USER 'iredadmin'@'192.168.1.200';
    DROP USER 'iredapd'@'192.168.1.200';
    DROP USER 'roundcube'@'192.168.1.200';
    DROP USER 'sogo'@'192.168.1.200';
    DROP USER 'vmail'@'192.168.1.200';
    DROP USER 'vmailadmin'@'192.168.1.200';

## Installeer iRedMail

Volgt u alstublieft de iRedMail installatiegids tot op de letter, maar start de installatie met onderstaand commando in plaats van het normale iRedMail installatiescript (bij een 'normale' installatie is dat: `bash iRedMail.sh`):

Warning

Als je externe MySQL server een IPv6 adres gebruikt, omring the dan met `[]` zoals hier het geval is: `[fd01:2345:6789:1::1]`.

    USE_EXISTING_MYSQL='YES' \
        MYSQL_SERVER_ADDRESS='192.168.1.100' \
        MYSQL_SERVER_PORT='3306' \
        MYSQL_ROOT_USER='admin_iredmail' \
        MYSQL_ROOT_PASSWD='admin_password' \
        MYSQL_GRANT_HOST='192.168.1.200' \
        bash iRedMail.sh

Na dat gedaan te hebben start de iRedMail installatiegids zoals bij een 'normale' installatie het geval is.

Beschrijvingen van de gebruikte parameters van bovenstaand commando :

- `USE_EXISTING_MYSQL`: Extern MySQL server adres.
- `MYSQL_SERVER_ADDRESS`: Extern MySQL server adres.
- `MYSQL_SERVER_PORT`: Externe MySQL server port. Standaard is `3306`.
- `MYSQL_ROOT_USER`: Gebruikersnaam MySQL gebruiker die we gecreëerd hadden op de externe MySQL server voor iRedMail te installeren.
- `MYSQL_ROOT_PASSWD`: MySQL paswoord dat we gecreëerd hebben op de externe MySQL server voor iRedMail te installeren.
- `MYSQL_GRANT_HOST`: Hostname of IP adres van de iRedMail server.

iRedMail zal nieuwe SQL gebruikers creëren voor applicaties zoals Postfix, Amavisd, Roundcube webmail, etc, en zal die gebruikers nodige privileges geven zodat ze een verbinding kunnen opstarten vanaf de iRedMail server.

Je kunt optionele parameter `INITIALIZE_SQL_DATA` gebruiken om het iRedMail installatieprogramma geen sql bestanden te laten opstarten. Gebruik `INITIALIZE_SQL_DATA=NO` als je dat niet wilt. Op deze manier zal het installatieprogramma alleen maar gerelateerde configuratiebestanden configureren die nodig zijn voor het gebruik van de externe MySQL server.