Entwicklung und Datenbanken
Welche MySQL-Variablen sich in einem verwalteten Hosting ändern lassen
MySQL unterscheidet globale Variablen, die den ganzen Server betreffen, und Sitzungsvariablen, die nur für eine Verbindung gelten. In einem verwalteten Cloud-Hosting-Tarif nutzen mehrere Konten denselben MySQL-Dienst. Deshalb hat ein Konto weder root-Zugang noch die Administratorrechte, die zum Ändern globaler Variablen nötig sind (SYSTEM_VARIABLES_ADMIN in MySQL 8), um die globale Konfiguration zu ändern.
Geltungsbereich der Variablen
Die InnoDB-Puffer, das Gesamtlimit der Verbindungen und bestimmte Protokolle werden auf Serverebene verwaltet. max_allowed_packet hat einen globalen und einen Sitzungswert, aber der Sitzungswert ist für den MySQL-Server schreibgeschützt: Er lässt sich nicht mit einem SET SESSION der Anwendung erhöhen. Andere Parameter, etwa bestimmte SQL-Modi, Timeouts oder Zeichensätze, können unterschiedliche globale und Sitzungswerte haben.
Beide Geltungsbereiche fragen Sie so ab:
SHOW GLOBAL VARIABLES LIKE 'max_allowed_packet'; SHOW SESSION VARIABLES LIKE 'max_allowed_packet';
Sitzungsvariablen
Manche Anwendungen können beim Öffnen jeder Verbindung SET SESSION ausführen, wenn MySQL die Änderung dieser Variable erlaubt. Die Änderung gilt nur für diese Sitzung und muss im Code, im Framework oder im Datenbank-Konnektor konfiguriert werden.
Verwenden Sie SET GLOBAL nicht als Lösung: Es scheitert an fehlenden Rechten oder würde andere Konten betreffen. Verwechseln Sie auch PHP-Limits wie memory_limit oder upload_max_filesize nicht mit MySQL-Variablen.
Alternativen
- Teilen Sie große Importe oder Abfragen in Stapel auf.
- Prüfen Sie die Kompatibilität des SQL-Modus; deaktivieren Sie keine Prüfungen, nur um fehlerhafte Daten oder Abfragen zu verbergen. Wenn das Projekt eine erlaubte Sitzungseinstellung benötigt, testen Sie sie vorher.
- Korrigieren Sie Abfragen und Schemata, die übermäßig Speicher oder Zeit verbrauchen.
- Nutzen Sie Aufgaben über die Kommandozeile, um Limits des Webservers oder von PHP zu umgehen; die Limits von MySQL selbst ändert das nicht.
- Bei Verbindungsabbrüchen wegen Inaktivität richten Sie die Wiederherstellung der Verbindung ein und prüfen, welche Operation abgeschlossen wurde, bevor Sie sie wiederholen. Ein Verbindungsabbruch beweist nicht, dass ein Schreibvorgang fehlgeschlagen ist.
- Prüfen Sie, ob eine aktuelle Version der Anwendung die globale Anforderung vermeidet.
Bevor Sie die Kompatibilität ausschließen, senden Sie uns den Namen der Variable, den benötigten Wert und die Dokumentation der Software. Wir können ihren Geltungsbereich prüfen und bewerten, ob es eine Alternative pro Sitzung oder eine sichere Einstellung auf dem Server gibt, aber eine globale Änderung kann nicht garantiert werden.
Wenn die Anforderung mit einer gemeinsam genutzten Umgebung unvereinbar ist und dauerhafte Administratorrechte verlangt, ist eine selbst kontrollierte Infrastruktur nötig, etwa ein VPS oder ein dedizierter Server. Hostsuar bietet diese Umgebungen derzeit nicht an; sehen Sie sich die Unterschiede zwischen einem VPS und unserem Cloud-Hosting an.
Ein in phpMyAdmin ausgeführtes SET SESSION ändert nur diese Verbindung; es ändert weder die Sitzungen Ihrer Website noch künftige Verbindungen eines Pools. Prüfen Sie Geltungsbereich und Rechte jeder Variable für Ihre Version und kontrollieren Sie den Wert aus der Anwendung selbst.
Das könnte Ihnen auch helfen
- Eine Datenbank und ihren Benutzer mit dem Assistenten von cPanel anlegen Legen Sie mit dem Assistenten von cPanel eine MySQL-Datenbank, ihren Benutzer und die Berechtigungsz...
- MySQL-Datenbanken, Benutzer und Berechtigungen in cPanel anlegen Legen Sie eine MySQL-Datenbank in cPanel an, fügen Sie ihren Benutzer hinzu, weisen Sie ihm alle Ber...
- Datenbank klonen Duplizieren Sie eine MySQL-Datenbank, indem Sie zuerst das Ziel und seine Berechtigungen in cPanel a...
- Datenbank von MyISAM nach InnoDB konvertieren und die Storage-Engine wechseln Konvertieren Sie MyISAM-Tabellen auf einem geprüften Klon nach InnoDB, prüfen Sie Speicherplatz, Ind...
Stimmt etwas nicht oder hat sich etwas geändert? Erzählen Sie es uns, und wir prüfen es.