MySQL-Server unter FreeBSD: Installation

MySQL ist eine der bekanntesten und meistgenutzten SQL-Implementationen überhaupt. Sei es für Nextcloud oder Wordpress - MySQL muss oder kann benutzt werden.

MySQL unter FreeBSD

Dieser Artikel üder erster Teil einer Serie, in der die Grundlagen der Installation und Einrichtung des MySQL-Servers unter FreeBSD erklärt werden.

  1. Installation
  2. Fehlersuche
  3. Grundlagen Absicherung

Inhalt

  1. Installation
    1. Installation mit pkg
    2. Installation aus dem Portstree
    3. Installation aus den Quellen von mysql.com
  2. Aktivierung in /etc/rc.conf
  3. Anhang: MariaDB

1. Installation

MySQL sollte entweder über pkg oder aus den Ports installiert werden. Nur in Ausnahmefällen sollten die Quellen direkt von mysql.com bezogen werden.

Da der MySQL-Server in unterschiedlichen Fassungen vorliegt, sollte sich zu erst überlegt werden, welche Version zu installieren ist.

1.1. Installation mit pkg

Zum Zeitpunkt des Verfassens des Artikels stehen folgende Pakete zur verfügung:

  • mysql55-server: MySQL 5.5
  • mysql56-server: MySQL 5.6
  • mysql57-server: MySQL 5.7
  • mysql80-server: MySQL 8.0
  • mysqlwsrep56-server: MySQL 5.6 mit Galera-Replikation
  • mysqlwsrep57-server: MySQL 5.7 mit Galera-Replikation

Während des schreibens des Artikel wurde das Paket von MySQL 8.0 (mysql80-server) noch als Beta gekennzeichnet. Die mysqlwsrep5*-server-Pakete wurden zusätzlich um für Cluster erweitert.

Daher kann sich, sollten nicht die neuste Funktionen oder Replikation benötigt werden, für eine der "normalen" Versionen entschieden werden:

pkg install mysql57-server

Automatisch mitinstalliert wird der Kommandozeilen-Client mysql*-client, passend zu der Version des Servers.

1.2. Installation aus den Ports

Für die Installation aus den Ports wird GNU-make (gmake) vorrausgesetzt.

Zur Zeitpunkt des Artikel waren folgende Ports verfügbar:

  • databases/mysql55-server: MySQL 5.5
  • databases/mysql56-server: MySQL 5.6
  • databases/mysql57-server: MySQL 5.7
  • databases/mysql80-server: MySQL 8.0
  • databases/mysqlwsrep56-server: MySQL 5.6 mit Galera-Replikation
  • databases/mysqlwsrep57-server: MySQL 5.7 mit Galera-Replikation

Nach dem Wechsel in das entsprechende Verzeichnis wird mit

make config

die Konfiguration ermöglicht. Dort könne verschiedene "Storage Engines" direkt in den Server integriert werden - sollten diese nicht angewählt werden, stehen diese trotzdem zur Verfügung.

Die folgenden Befehlt kompilieren und installieren den MySQL-Server:

make
make install

1.3. Installation aus den Quellen von mysql.com

Natürlich ist es möglich den SQL-Server auch von dem offiziellen Quellcode zu installieren. Sinnvoll ist dieses, sollte ein Fehler oder nur eine veraltete im Portstree bzw. bei pkg vorhanden sein.

Bei der manuellen Installation wird der MySQL-Server nicht im Paketsystem registriert.

Hier sei auf die Installationsanleitung auf mysql.com, verwiesen.

Der FreeBSD-Dienst muss hierbei eventuell selber eingerichtet werden.

2. Aktivierung in /etc/rc.conf

Damit MySQL als Dienst überhaupt starten kann, muss dieser zunächst aktiviert werden:

sysrc mysql_enable=yes
mysql_enable: yes -> yes

Dabei wird der Eintrag mysql_enable in /etc/rc.conf auf yes gesetzt.

Um zu überprüfen, ob bei der Installation alles glatt lief, wird der Dienst einmal gestartet:

service mysql-server start
Starting mysql.

Sollte anschließend service mysql-server status folgendes ausgeben, ist die Installation erfolgreich verlaufen:

service mysql-server status
mysql is running as pid 19512.

Sollte stattdessen folgendes dort stehen, ist ein Fehler aufgetreten:

service mysql-server status
mysql is not running.

In diesem Fall geht es weiter mit der Fehlersuche.

3. Anhang: MariaDB

MariaDB ist ein Fork von MySQL: Als solcher ist dieser weitesgehend kompatibel zu MySQL und kann fast als drop-in-replacement verwendet werden. MariaDB wird jedoch als eigenständige Datenk-Engine weiterentwickelt, sodass etwa eine Replikation über mehrere Knoten möglich ist.

Grundsätzlich kann die Anleitung auch auf MariaDB übertragen werden. Allerdings gilt zu beachten:

  • Die gleichzeitige Verwendung des MySQL-Servers und des MariaDB-Servers auf dem gleichen System ist meist schwierig oder unmöglich - schon der Paketmanager verbietet dieses in der Regel.
  • MySQL und MariaDB verwenden standardmäßig den gleichen Netzwerkport.
  • Das Datenbankformat der Backends ist unterschiedlich. Sollen unter MySQL erzeugten Datenbanken weitergenutzt werden, muss ein SQL-Dump davon erzeugt werden und unter MariaDB wieder eingespielt werden. Das gleiche gilt für den Wechsel zurück.

Die Pakete von MariaDB sind in bei pkg mit den folgenden Namen zu installieren:

  • mariadb55
  • mariadb100
  • mariadb101
  • mariadb102
  • mariadb103

Im Portstree ist MariaDB unter den folgenden Ordnern zu finden:

  • databases/mariadb55
  • databases/mariadb100
  • databases/mariadb101
  • databases/mariadb102
  • databases/mariadb103

Da MariaDB von sich aus die Möglichkeit für Cluster enthält, gibt es keine separaten Pakete.