Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

MySQL für Hoster

MySQL als Datenbank einer Exponential-Website aus Sicht eines Hosters - wo es in der offiziellen Reihenfolge steht, Versionen, die Rechte, die der Benutzer einer Website braucht, InnoDB und utf8mb4, Einstellungen…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/hosting/basics/mysql-for-hosts.md

On this page

This page is a translation. Read the English original

MySQL für Hoster

Diese Seite ist für Systemadministratoren bei einem Hosting-Anbieter, die MySQL-Datenbanken für Exponential-Websites bereitstellen. Sie beantwortet: wo MySQL steht, wie Sie die Datenbank und den Benutzer einer Website anlegen, was der Treiber vom Server braucht, wie Sie Replikate nutzen und wie Sie sichern. MySQL ist die sechste in der offiziellen Reihenfolge: unterstützt und in der CI des Projekts getestet, nur deshalb zuletzt, weil das Projekt für neue Websites zuerst die anderen empfiehlt. Quellen: Datenbankunterstützung und Kapitel 9.3.

Inhalt

  1. Wo MySQL steht
  2. Versionen und Erweiterung
  3. Eine Datenbank pro Website anlegen
  4. Einstellungen und Installation
  5. Replikate und persistente Verbindungen
  6. Backups
  7. Probleme und ihre Ursachen
  8. Checkliste
  9. Verwandte Seiten

Wo MySQL steht

  • Der Treiber eZMySQLiDB auf mysqli ist der, für den die meisten Erweiterungen von Drittanbietern ursprünglich geschrieben wurden; MySQL ist daher die sichere Wahl für einen Kunden mit älteren Erweiterungen, die eigenes SQL enthalten.
  • Es teilt den Treiber mit MariaDB (MariaDB für Hoster); für einen Hoster werden beide gleich bereitgestellt.
  • Die CI des Projekts führt ihre Datenbanktests bei jedem Push gegen MySQL 8.0 aus (Testabdeckung).

Versionen und Erweiterung

ElementWert
Untergrenze des Assistenten4.1.1 (keine Empfehlung)
Praktisches Minimumein Release, das Ihr Hersteller noch unterstützt, mit utf8mb4 und InnoDB
Funktionierend gesehen8.0 in der CI
PHP-Erweiterungmysqli (php-mysqlnd in der RHEL-Familie, php<version>-mysql unter Debian und Ubuntu)
Namen in den InstallernAssistent „MySQL Improved“; exp:install --db=mysql (auch mysqli); Kickstarter Type=mysqli

Eine Datenbank pro Website anlegen

CREATE DATABASE <customer> CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER '<customer>'@'localhost' IDENTIFIED BY '<a strong password>';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER,
      LOCK TABLES, CREATE TEMPORARY TABLES
   ON <customer>.* TO '<customer>'@'localhost';

Es ist kein globales Recht nötig. Der Installer legt InnoDB-Tabellen an, wenn der Server InnoDB anbietet, und Transaktionen brauchen es. Die MySQL-Update-Dateien eines Upgrades beginnen mit SET default_storage_engine=InnoDB; (Kapitel 9.3).

Einstellungen und Installation

[DatabaseSettings]
DatabaseImplementation=ezmysqli
Server=localhost
# empty: 3306
Port=
User=<customer>
Password=<the password>
Database=<customer>
# a Unix socket instead of host and port, e.g. /var/lib/mysql/mysql.sock
Socket=disabled
Charset=utf-8
UsePersistentConnection=disabled
ConnectRetries=0
EXP_INSTALL_DB_PASSWORD='<the password>' php bin/php/console exp:install --apply --db=mysql \
    --db-host=127.0.0.1 --db-name=<customer> --db-user=<customer> --allow-root-user

Hinweis Der Verbindungszeichensatz utf-8 wird als MySQLs utf8 gesendet, drei Byte pro Zeichen; Zeichen außerhalb der Basic Multilingual Plane, etwa Emoji, können daher nicht durch die Verbindung gehen, auch wenn die Tabellen utf8mb4 sind. Kunden, die sie brauchen, sollten das wissen, bevor sie MySQL oder MariaDB wählen (Zeichensätze).

Replikate und persistente Verbindungen

  • Lese-Replikate. UseSlaveServer=enabled mit SlaveServerArray[], SlaveServerPort[], SlaverServerUser[], SlaverServerPassword[] und SlaverServerDatabase[] (die Schlüssel heißen wirklich Slaver...) schickt Lesezugriffe an ein Replikat, das pro Anfrage zufällig gewählt wird; Schreibzugriffe gehen an Server. Durch die Replikationsverzögerung kann eine Seite Inhalte zeigen, die einige Sekunden alt sind.
  • Persistente Verbindungen. UsePersistentConnection=enabled hält eine Verbindung pro PHP-Prozess (der Treiber stellt dem Host p: voran). Unter den persistenten Workern von Velocity hält jeder Worker seine Verbindung ohnehin. Bemessen Sie das Verbindungslimit des Servers für die Anzahl der PHP-Prozesse aller Websites, die ihn nutzen.

Backups

mysqldump --single-transaction -u <customer> -p <customer> > <customer>.sql
mysql -u <customer> -p <customer> < <customer>.sql

--single-transaction ergibt einen konsistenten Dump von InnoDB-Tabellen, ohne sie zu sperren. Ein vollständiges Backup enthält außerdem var/storage, settings/override und settings/siteaccess (Backup und Wiederherstellung).

Probleme und ihre Ursachen

SymptomUrsache
Die Fehlerseite, dass die Datenbank nicht erreichbar istfalscher Host, Benutzer, falsches Passwort oder falsche Datenbank; seit PHP 8.1 wirft mysqli eine Ausnahme, und der Treiber macht daraus eZDBNoConnectionException
Text mit ? an der Stelle von Buchstaben mit Akzentdie Verbindung ist auf den Standardzeichensatz des Servers zurückgefallen; setzen Sie AlwaysLog[]=warning und suchen Sie in var/log/warning.log nach „could not set the connection charset“
Der Assistent lehnt den Zeichensatz der Datenbank abdie Datenbank ist nicht UTF-8; legen Sie sie in utf8mb4 neu an
Langsame Abfragen[DatabaseSettings] QueryAnalysisOutput=enabled mit SQLOutput=enabled zeigt die Analyse von MySQL in der Debug-Ausgabe

Checkliste

  • To do: Ein unterstütztes MySQL-Release mit InnoDB.
  • To do: Eine Datenbank pro Website in utf8mb4, ein Benutzer mit den Rechten oben.
  • To do: mysqli im Web-PHP und im PHP der Kommandozeile.
  • To do: Das Verbindungslimit des Servers für die PHP-Prozesse aller Websites auf dem Server bemessen.
  • To do: Backups mit mysqldump --single-transaction geplant und eine Wiederherstellung getestet.

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x