Zugriff auf MySQL-/MariaDB-Datenbanken

Diese Hinweise gelten für den neuen MariaDB-Server, nicht für bestehende Datenbanken!

Wer im Webserverpark einen Webspace für eine Einrichtung der Universität betreibt, kann „auf Zuruf“ eine MySQL-/MariaDB-Datenbank erhalten.

In aller Regel werden Ihnen zu einer solchen Datenbank drei Angaben zur Verfügung gestellt: Der Datenbankname DATABASE, die Datenbanknutzerkennung USERNAME und das zugehörige Passwort PASSWORD. In aller Regel werden DATABASE und USERNAME identisch sein.

Als Zeichensatz wird der vollständige Unicode-Zeichensatz utf8mb4 voreingestellt und als Sortierreihenfolge die Standard-Unicode-Collation utf8mb4_unicode_ci.

Der Server mit dem Dienstnamen mysql.uni-muenster.de nutzt eine private IP-Adresse und ist daher nur aus dem lokalen Rechnernetz der WWU erreichbar. Wer sich außerhalb dieses Rechnernetzes befindet, muss vorher eine VPN-Verbindung, einen SSH-Tunnel, eine Remote-Desktop-Verbindung oder Ähnliches aufbauen.

Gegenüber dem alten Server veränderte Einstellungen sind unten fett gedruckt.

Normalfall: Verschlüsselte Verbindung per TLS

Dieser Zugang kann aus dem lokalen Rechnernetz der WWU genutzt werden.

Im Webserverpark sollte als ROOTCERT die Datei /www/data/sys/pem/all-rootca.pem angegeben werden.

Auf anderen Rechnern sollte vorher die Datei https://www.uni-muenster.de/WWUCA/all-rootca.pem herunterladen und die abgespeicherte Datei als ROOTCERT angegeben werden.

phpMyAdmin-Zugang

https://mysql.uni-muenster.de/phpMyAdmin/

Kommandozeilen-Zugang

mysql \
  --host mysql.uni-muenster.de \
  --user USERNAME \
  --password \
  --ssl-ca ROOTCERT \
  DATABASE

Zugang mit PHP-Skripten mittels MySQLi

$conn=mysqli_init();
mysqli_options($conn,MYSQLI_OPT_CONNECT_TIMEOUT,5);
mysqli_ssl_set($conn,null,null,'ROOTCERT',null,null);
if(mysqli_real_connect
(
  $conn,
  'mysql.uni-muenster.de',
  'USERNAME',
  'PASSWORD',
  'DATABASE',
  3306,
  MYSQLI_CLIENT_SSL

)){
  # Anmeldung erfolgreich
  # .....
  mysqli_close($conn);
}else{
  # Fehlerbehandlung
  # .....
}

Zugang mit PHP-Skripten mittels PDO

try{
  $pdo=new PDO(
    'mysql:host=mysql.uni-muenster.de;port=3306;dbname=DATABASE',
    'USERNAME',
    'PASSWORD',
    array(
      PDO::ATTR_TIMEOUT => 5,
      PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => true,
      PDO::MYSQL_ATTR_SSL_CA => 'ROOTCERT',

    )
  );
  # Anmeldung erfolgreich
  # .....
} catch(PDOException $e){
  # Fehlerbehandlung
  # .....
}
unset($pdo);

Nur falls unbedingt nötig: Verschlüsselte Verbindung per SSH-Tunnel

Der SSH-Tunnel kann nur aus dem Webserverpark genutzt werden und nur nach entsprechener Freischaltung der Datenbanknutzerkennung.

Geben Sie dazu als Hostname 127.0.0.1 und als Portnummer 9906 an.

Falls kein Eingabefeld für eine Portnummer vorhanden ist, geben Sie als Hostname 127.0.0.1:9906 an.

Sowohl die Freischaltung der Datenbanknutzerkennung als auch die Nutzung des Tunnels haben unerwünschte Nebenwirkungen, daher sollte diese Alternative nur dann in Betracht gezogen werden, falls die verwendete Software zu alt oder zu dumm ist, um TLS-geschützte Verbindungen aufzubauen.

Migration vom alten MySQL-Server

Auf dem Upload-Server (siehe Pflege eines Webspaces mit SSH / SCP / SFTP) funktionieren folgende beiden Befehle, um eine Datenbank vom alten MySQL-Server in eine Datei zu schreiben und diese Datei in den neuen MySQL-Server zu importieren:

mysqldump --databases \
  --host 127.0.0.1 \
  --user OLDUSERNAME --password \
  DATABASE  >DATABASE.sql

mysql \
  --ssl-ca /www/data/sys/pem/all-rootca.pem \
  --host mysql.uni-muenster.de \
  --user USERNAME --password \
  DATABASE  <DATABASE.sql