freeload4u
 

Einen MySQL-Server unter Debian einrichten

MySQL ist eines der weltweit verbreitetsten relationalen Datenbankverwaltungssysteme. Es ist als Open-Source-Software sowie als kommerzielle Enterpriseversion für verschiedene Betriebssysteme verfügbar und bildet die Grundlage für viele dynamische Webauftritte.

Ausgangspunkt

  1. Installiertes Debian 8.7

Ziel


1. Installation (Version: 5.7.x)
Als erstes gehen wir auf https://dev.mysql.com/downloads/repo/apt/ und laden uns die Datei (mysql-apt-config_0.8.1-1_all.deb).

Dieses Paket sorgt dafür die Debian apt-sources mit dem aktuellen mysql repository zu erweitern. Dies erleichtert erheblich unsere Arbeit bei der Installation und die Erfüllung von Abhängigkeiten.

Entweder kopieren wir manuel die Datei in unser Homeverzeichnis oder ziehen uns mit wget direkt von der offiziellen mysql.com Seite.
        
            cd /home/user
        
    
        
            wget https://dev.mysql.com/get/mysql-apt-config_0.8.1-1_all.deb
        
    
Root werden
        
            su
        
    
Wir installieren mit:
        
           dpkg -i mysql-apt-config_0.8.1-1_all.deb
        
    
Anschließend wird ein Konfigurationsmenü aufgerufen. Dort besteht die Möglichkeit die Version des Servers zu wählen. Wir entscheiden uns für die aktuelle Version 5.7 und bestätigen mit [OK].

Jetzt wird im Verzeichnis /etc/apt/sources.list.d eine Datei mit dem Namen mysql.list automatisch erstellt.
Der Inhalt sieht dann in etwa so aus:
        
            ### THIS FILE IS AUTOMATICALLY CONFIGURED ###
            # You may comment out entries below, but any other modifications may be lost.
            # Use command 'dpkg-reconfigure mysql-apt-config' as root for modifications.
            deb http://repo.mysql.com/apt/debian/ jessie mysql-apt-config
            deb http://repo.mysql.com/apt/debian/ jessie mysql-5.7
            deb http://repo.mysql.com/apt/debian/ jessie mysql-tools
            #deb http://repo.mysql.com/apt/debian/ jessie mysql-tools-preview
            deb-src http://repo.mysql.com/apt/debian/ jessie mysql-5.7
        
    

Als nächstes starten wir ein apt-update (Neueinlesen der Paketlisten)
        
            apt-get update
        
    

Mögliche Fehlermeldung hierbei:
W: GPG-Fehler: http://repo.mysql.com jessie In Release: Die folgenden Signaturen waren ungültig: KEYEXPIRED 1487236823 KEYEXPIRED 1487236823 KEYEXPIRED 1487236823

...kann erstmal ignoriert werden.

Wir installieren:
        
            apt-get install mysql-community-server
        
    

Mögliche Warnungen:
Die folgenden Pakete können nicht authentifiziert werden!

Bestätigen wir mit "Ja" und der mysql-server (5.7) wird installiert. Währenddessen erscheint ein Dialog in dem wir das Root-Passwort für unseren Server setzen müssen. Das merken wir uns gut und bestätigen mit [OK].

Nach Abschluss der Installation überprüfen wir zunächst mal die installierte Version
        
            mysql -V
        
    

Die Ausgabe sollte so aussehen: Distrib 5.7.17
Fertig :-)


2. Konfiguration (Version: 5.7.x)

Konfigurationsdateien
Im Verzeichnis /etc/mysql/mysql.conf.d/ befinden sich die Konfigurationsdateien von MySQL. Die Datei mysqld.cnf wird automatisch bei der Installation erzeugt und sollte nur geändert werden, wenn Sie genau wissen, was Sie tun. Wir werfen mal einen Blick hinein:
        
            cat mysqld.cnf
        
    

mysqld.cnf
        
            #
            # The MySQL  Server configuration file.
            #
            # For explanations see
            # http://dev.mysql.com/doc/mysql/en/server-system-variables.html

            [mysqld]
            pid-file        = /var/run/mysqld/mysqld.pid
            socket          = /var/run/mysqld/mysqld.sock
            datadir         = /var/lib/mysql
            log-error       = /var/log/mysql/error.log
            # By default we only accept connections from localhost
            bind-address    = 127.0.0.1
            # Disabling symbolic-links is recommended to prevent assorted security risks
            symbolic-links=0
        
    
Was uns vielleicht noch etwas später interessieren könnte ist die Zeile mit der bind-address, die derzeit auf sich selbst zeigt. Für die Installation von bsp. phpMyAdmin auf dem selben Server muss diese auch nicht geändert werden.

Wenn man allerdings von außen (LAN) z.B im selben Netzwerk mit einem MySQL Client zugreifen möchte, muss die 127.0.0.1 in die IP des Servers geändert werden z.B. bind-address = 192.168.0.2. Man kann natürlich auch alle Verbindungen also aus dem WAN zulassen. 0.0.0.0 davon rate ich allerdings ab.

Am einfachsten ist es jetzt phpMyAdmin oder eine MySQL GUI - Client Anwendung zu installieren, die uns bei der Verwaltung der Datenbanken und Tabellen hilft. Natürlich ist es auch möglich alles per Hand anzulegen.

Wir testen jetzt erstmal die Verbindung indem wir uns als root beim MySQL-Server anmelden.
        
            mysql -u root -p
        
    
Die Ausgabe sollte nun wie folgt aussehen:
        
            Welcome to the MySQL monitor.  Commands end with ; or \g.
            Your MySQL connection id is 4
            Server version: 5.7.17 MySQL Community Server (GPL)

            Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

            Oracle is a registered trademark of Oracle Corporation and/or its
            affiliates. Other names may be trademarks of their respective
            owners.

            Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

            mysql>
        
    
Hier besteht nun die Möglichkeit einen Benutzer, eine Datenbank oder Tabelle anzulegen.

Datenbank anlegen
Als Datenbankname nehmen wir in dem Fall tutorials. Der Name sollte in der Regel den Namen der Anwendung bekommen um deutlich zu machen worum es sich hierbei handelt.

Jeder Befehl muss mit einem Semikolon; enden.
        
            mysql> create database if not exists tutorials;
        
    
Wurde der Befehl erfolgreich ausgeführt kommt ein:
Query OK, x row affected (x,xx sec) zurück.

Wichtig:
Der MySQL-Server legt die Datenbanken standardmäßig im Verzeichnis /var/lib/mysql ab. Um später ein Backup zu machen, kopieren wir einfach den Ordner.

Benutzer anlegen
Jetzt legen wir noch einen Datenbankbenutzer an. Dieser erhält den Namen benutzer1 und das Passwort pass123 .
        
            mysql> create user 'benutzer1'@'localhost' identified by 'pass123';
        
    

Wir erlauben dem Benutzer benutzer1 die Verbindung zum Server vom localhost aus, mit dem Passwort pass123
        
            mysql> grant usage on *.* to 'benutzer1'@'localhost' identified by 'pass123';
        
    

Und zuletzt gewähren wir alle Privilegien der tutorials Datenbank für diesen Benutzer benutzer1.
        
            mysql> grant all privileges on tutorials.* to 'benutzer1'@'localhost';
        
    

Jetzt sollte noch der interne Cache reloaded bzw. gelöscht werden. Damit die Änderungen auch sofort aktiv sind.
        
            mysql> flush privileges;
        
    

Abmelden:
        
            mysql> quit;
        
    


3. Verbindung aufbauen
Sofern PHP bereits schon installiert ist, können Sie folgendes Script einfach in der Konsole ausführen. Dazu legen wir uns eine Datei an z.B. verbindung.php.
        
            touch verbindung.php
        
    
        
            <?php

            $server   = 'mysql:dbname=tutorials;host=localhost';
            $user     = 'benutzer1';
            $password = 'pass123';
            $options  = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');

            try{
                $pdo = new PDO($server, $user, $password, $options);
                echo "Verbindung erfolgreich\n";
            }catch(PDOException $e)
            {
                throw new Exception($e->getMessage());
            }

            ?>
        
    
Ausführen
        
            php verbindung.php
        
    
Sollte die Verbindung erfolgreich gewesen sein, wird
        
            Verbindung erfolgreich
        
    
ausgegeben.

Verbindung ohne PHP testen:
Die Verbindung kann natürlich auch ohne PHP getestet werden. Dazu melden wir uns einfach als Benutzer an:
        
            mysql -u benutzer1 -p
        
    

Ist die Verbindung erfolgreich:
Welcome to the MySQL monitor.

Weiterführende Tutorials:
  1. phpMyAdmin (4.6.6) installieren