Datenbankeinstellungen lesen und ändern
Diese Seite richtet sich an Datenbankadministratoren, die die Verbindungseinstellungen einer laufenden Website lesen oder ändern müssen: ein neues Passwort, ein neuer Host nach einem Umzug, eine andere Engine. Sie beantwortet: wo die Werte liegen, wie Sie den wirksamen Wert und die Datei sehen, aus der er kommt, wie Sie eine Änderung schreiben und was Sie neu starten, damit jeder Prozess sie verwendet. Quellen: 9.1 und exp:ini.
Inhalt
- Wo die Werte liegen
- Den wirksamen Wert lesen
- Die Datei finden, aus der ein Wert kommt
- Einen Wert ändern
- Jeden Prozess den Wert lesen lassen
- Das Passwort ändern
- Häufige Fehler
Wo die Werte liegen
| Datei | Geltungsbereich | Wer sie schreibt |
|---|---|---|
settings/site.ini | die mitgelieferten Standards | das Release; bearbeiten Sie sie nie |
settings/override/site.ini.append.php | die ganze Installation | die Installer, Sie |
settings/siteaccess/<name>/site.ini.append.php | ein Siteaccess | Sie, wenn ein Siteaccess eine andere Datenbank braucht |
extension/<ext>/settings/site.ini.append.php | eine aktive Erweiterung | die Erweiterung (zum Beispiel die Oracle-Aliase) |
settings/override/ gewinnt gegen jede Erweiterung. Die Override-Dateien enthalten das Datenbankpasswort: Halten Sie sie
aus der Versionsverwaltung heraus (Die Datenbank absichern).
Den wirksamen Wert lesen
php bin/php/console exp:ini get site.ini/DatabaseSettings/DatabaseImplementation --allow-root-user
php bin/php/console exp:ini get site.ini/DatabaseSettings/Database --allow-root-user
php bin/php/console exp:ini list site.ini/DatabaseSettings global --allow-root-userDie Konsole gibt zuerst auf dem Fehlerkanal eine Zeile aus, die das ausgeführte Skript nennt, dann allein den Wert, zum
Beispiel sqlite3. Werte, deren Name nach einem Geheimnis aussieht (darunter Password), werden als ******** angezeigt;
--show-secrets zeigt sie, verwenden Sie es also nur, wo niemand über Ihre Schulter mitliest.
In der Administration zeigt Setup > Systeminformationen in der Karte Datenbank und im Teil zur Datenbankverbindung die Engine, den Server, den Datenbanknamen und den Zeichensatz; Datenbankbenutzer und Passwort werden dort nie angezeigt (Systeminformationen).
Die Datei finden, aus der ein Wert kommt
php bin/php/console exp:ini where site.ini/DatabaseSettings/Server --allow-root-user
php bin/php/console exp:ini where site.ini/DatabaseSettings/Server admin --allow-root-user # for the siteaccess adminwhere listet jede Datei, die die Variable setzt, in der Reihenfolge, in der die Einstellungen geladen werden, und den
wirksamen Wert. Zeigt ein geänderter Wert noch den alten, ging die Änderung in eine Datei oder einen Block, der nicht
gelesen wird.
Einen Wert ändern
Bearbeiten Sie settings/override/site.ini.append.php mit einem Editor, oder lassen Sie exp:ini die Datei schreiben und
die Änderung festhalten:
php bin/php/console exp:ini set site.ini/DatabaseSettings/Server db2.example.internal global --dry-run --allow-root-user
php bin/php/console exp:ini set site.ini/DatabaseSettings/Server db2.example.internal global --allow-root-user--dry-run zeigt die Änderung, ohne zu schreiben. Der Geltungsbereich global schreibt nach settings/override/;
siteaccess:<name> schreibt die Datei dieses Siteaccess. Geben Sie auf einer geteilten Maschine kein Passwort auf der
Kommandozeile an: Es ist in der Prozessliste und der Shell-Historie sichtbar; bearbeiten Sie stattdessen die Datei.
Jeden Prozess den Wert lesen lassen
php bin/php/ezcache.php --clear-tag=ini --allow-root-user
php bin/php/console exp:velocity restart --allow-root-user # only when Velocity serves the site- Leeren Sie den INI-Cache mit
--clear-tag=ini. - Laden Sie den PHP-FPM-Pool, der die Website ausliefert, sanft neu, sodass kein Worker die alte Verbindung behält (Bereitstellen, den richtigen PHP-FPM neu laden).
- Die Worker von Velocity lesen
site.inibeim Start; starten Sie sie neu. - Cronjobs und Konsolenbefehle lesen die Einstellungen bei jedem Lauf.
Das Passwort ändern
- Setzen Sie auf dem Datenbankserver das neue Passwort für das Konto der Website und lassen Sie das alte gültig, wenn die Engine das erlaubt (oder planen Sie ein kurzes Wartungsfenster).
- Schreiben Sie das neue Passwort in
settings/override/site.ini.append.php. - Leeren Sie den INI-Cache, laden Sie PHP-FPM neu, starten Sie Velocity neu.
- Laden Sie eine Seite und melden Sie sich in der Administration an.
- Entfernen Sie das alte Passwort auf dem Server.
Verwendet die Website den DFS-Cluster, hat dessen Metadatendatenbank ihre eigene Anmeldung in
file.ini [eZDFSClusteringSettings] und in config.cluster.php
(Clustering: DFS und seine Metadatendatenbank).
Häufige Fehler
| Symptom | Ursache |
|---|---|
Jede Inhaltsseite scheitert, error.log sagt "Database implementation not supported" | Ein falsch geschriebener Alias in DatabaseImplementation |
| SQLite: Die Website meldet fehlende Tabellen | Ein falscher Wert für Database: SQLite legt eine neue, leere Datei an, statt zu scheitern |
| Die Änderung erscheint auf der Kommandozeile, aber nicht im Browser | Der INI-Cache wurde nicht geleert, oder Velocity wurde nicht neu gestartet |
| Ein Siteaccess verwendet noch den alten Server | Ein Wert in settings/siteaccess/<name>/site.ini.append.php überschreibt den globalen; prüfen Sie mit exp:ini where |
Verwandte Seiten
- Die Referenz zu DatabaseSettings
- Datenbankfehler beheben
- Wo die Verbindung gespeichert ist (für Hosting-Unternehmen)
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
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.