MySQL: Übersicht
Allgemeines zu MySQL-Datenbanken
MySQL ist das relationale Datenbanksystem für viele CMS, Shops und selbst entwickelte Anwendungen. Eine Datenbank enthält Tabellen, in denen deine Anwendung strukturierte Daten speichert.
Auf lima-city steht MySQL 8 mit der PHP-Erweiterung mysqli zur Verfügung. Alle Webhosting-Angebote enthalten unbegrenzt viele MySQL-Datenbanken. Im kostenlosen Webspace sind 500 MB MySQL-Speicher enthalten; bei Webhosting-Paketen hängt der Speicher vom gewählten Paket ab.
MySQL-Zugangsdaten
Deine Zugangsdaten findest du in der Verwaltung unter Datenbank-Benutzer. Dort legst du Datenbank-Benutzer an und weist ihnen Datenbanken zu.
Viele Anwendungen fragen bei der Installation nach Datenbankname, Datenbank-Benutzer, Passwort und Servername. Verwende dabei die Werte aus der Verwaltung und kopiere sie möglichst direkt, um Tippfehler zu vermeiden.
Warum bestehende MySQL-Passwörter nicht angezeigt werden
MySQL-Passwörter werden nicht im Klartext gespeichert. Deshalb kann die Verwaltung ein bestehendes Passwort nicht anzeigen. Du kannst ein Passwort nur neu setzen oder es aus einer vorhandenen Konfigurationsdatei deiner Anwendung auslesen, falls es dort gespeichert ist.
Wenn du das Passwort nicht mehr kennst, lege entweder einen neuen Datenbank-Benutzer mit bekanntem Passwort an oder setze das Passwort des bestehenden Benutzers neu. Prüfe danach alle Anwendungen, Cronjobs oder Skripte, die diesen Benutzer verwenden.
Der automatische Login in phpMyAdmin umgeht dieses Problem mit temporären Zugängen. Diese werden nur für den Login erzeugt und nach kurzer Zeit wieder entfernt.
phpMyAdmin
Auf deine Datenbanken kannst du über pma.lima-city.de mit phpMyAdmin zugreifen. Dort kannst du Tabellen ansehen, SQL ausführen, Inhalte exportieren oder eine Datenbank leeren.
Datenbanken endgültig löschen kannst du nicht in phpMyAdmin, sondern in der Verwaltung im Bereich MySQL-Datenbanken.
Nutzung der MySQL-Datenbanken
Eine MySQL-Datenbank benötigst du zum Beispiel für WordPress, Joomla, Shopware oder andere Anwendungen. Du kannst eine Datenbank für mehrere Anwendungen verwenden, wenn jede Anwendung ein eigenes Tabellenpräfix nutzt, zum Beispiel joomla1_ und joomla2_.
Praktischer und übersichtlicher ist oft eine getrennte Datenbank pro Projekt oder Anwendung. So lassen sich Backups, Exporte und Fehleranalysen leichter zuordnen.
MySQL-Backups
lima-city erstellt für Kunden mit Webhosting-Paket täglich ein Backup aller MySQL-Datenbanken. Die Backups werden 90 Tage aufbewahrt. Kunden mit kostenlosem Webspace müssen selbst regelmäßig Sicherungen erstellen.
Für Webhosting-Pakete findest du die Backups in der Verwaltung unter Backups im Tab MySQL-Backups. Dort kannst du ein Backup als .sql-Datei herunterladen oder direkt in eine Datenbank wiederherstellen.
Achtung: Beim Wiederherstellen in eine vorhandene Datenbank werden die bisherigen Inhalte dieser Datenbank überschrieben.
Für manuelle Backups verwendest du phpMyAdmin:
- Logge dich in phpMyAdmin ein.
- Wähle die gewünschte Datenbank.
- Öffne Exportieren.
- Lade die erzeugte SQL-Datei herunter.
- Bewahre die Datei zusätzlich außerhalb des Webspace auf.
Datenbank mit MySQL Workbench importieren
Für größere SQL-Dateien oder lokale Entwicklungsumgebungen kann MySQL Workbench statt phpMyAdmin genutzt werden. Installiere dafür MySQL Workbench von der offiziellen MySQL-Webseite und lege eine neue Verbindung mit den lima-city-Zugangsdaten aus der Verwaltung an.
Nach dem Verbinden wählst du links im Navigator Data Import/Restore. Aktiviere Import from Self-Contained File, wähle die SQL-Datei aus und gib als Ziel die gewünschte Datenbank an. Starte den Import anschließend unten rechts.
Wenn der Import fehlschlägt, prüfe zuerst Servername, Benutzername, Passwort und Datenbank-Zuordnung. Bei sehr großen Dumps ist außerdem sinnvoll, den Export vorher zu komprimieren oder nur die benötigten Tabellen zu importieren.
MySQL 8 und Kompatibilität
Für Webhosting-Datenbanken wird MySQL 8 bereitgestellt. Aktuelle Software-Versionen sind damit in der Regel kompatibel. Probleme entstehen meist bei veralteten Anwendungen oder sehr alten eigenen SQL-Abfragen.
Typische Änderungen, die bei MySQL 8 auffallen:
- Neue reservierte Keywords müssen in SQL-Abfragen mit Backticks geschrieben werden, zum Beispiel
`groups`. - Die alte Funktion
PASSWORD()ist nicht mehr verfügbar. - Der SQL-Mode wird von lima-city nicht speziell gelockert.
Für folgende Software-Versionen sind mindestens diese Versionen nötig:
| Software | Mindestversion |
|---|---|
| Concrete 5 | 8.4.1 |
| Contao | 3.5.40 |
| Drupal | 8.6.x |
| Shopware | 5.5 |
Fehler 111 Connection refused
Wenn beim Verbinden mit einer lima-city-Datenbank der Fehler 111 Connection refused erscheint, wird die Verbindung blockiert oder nicht korrekt aufgebaut.
Prüfe zuerst, ob Servername, Datenbank-Benutzer, Passwort und Netzwerk erreichbar sind. Besonders bei externen Verbindungen kann eine Firewall im eigenen Netzwerk oder beim Provider die Verbindung blockieren.
Wenn die Zugangsdaten stimmen und der Fehler weiterhin auftritt, kontaktiere den Support. Wir können dann prüfen, ob die IP-Adresse, von der der Zugriff ausgeht, bei uns gesperrt ist.
Fehler Index column size too large
Der Fehler Index column size too large. The maximum column size is 767 bytes. tritt auf, wenn ein Index für das verwendete Zeilenformat zu groß ist.
Das Zeilenformat DYNAMIC unterstützt längere Indizes. In SQL kann das so gesetzt werden:
CREATE TABLE tabelle (c1 INT) ROW_FORMAT=DYNAMIC;
Betroffen sein können zum Beispiel Moodle oder Mautic. Die Software ist grundsätzlich nutzbar, die Tabellen müssen aber mit einem passenden Zeilenformat angelegt werden.
Fehler #1227 bei Stored Procedures
Wenn beim Erstellen einer Stored Procedure der Fehler #1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation erscheint, enthält die Stored Procedure meist einen Security Definer.
Ein Security Definer sorgt dafür, dass die Stored Procedure unter einem anderen Benutzer ausgeführt wird. Das ist im Shared Hosting nicht möglich. Erstelle die Stored Procedure ohne Security Definer; sie wird dann mit dem Benutzer ausgeführt, der sie erstellt hat.
Datenbanken übertragen
Schenkungen oder direkte Übertragungen von Datenbanken zwischen Accounts sind technisch nicht möglich. Wenn Daten in einen anderen Account umziehen sollen, exportiere die Datenbank als SQL-Datei und importiere sie im Ziel-Account in eine neue Datenbank.