Kennisbank
1.000 veelgestelde vragen, 500 tutorials en uitlegvideo's. Hier vind je alleen maar oplossingen!
Gebruik van Views, Triggers, Opgeslagen Procedures en Routines
Deze handleiding beschrijft de beschikbare functies voor het beheren van relationele databases op de hosting van Infomaniak.
Gebruik van views, triggers, opgeslagen procedures en routines
Wat betreft het beheer van relationele databases, is de functionaliteit van 'weergaven' standaard beschikbaar, waardoor gebruikers weergaven kunnen maken om het beheer en de presentatie van gegevens te vereenvoudigen.
Sommige geavanceerde functies die een fijnere en complexere manipulatie van gegevens mogelijk maken, zoals…
- “triggers” (gebeurtenissen)
- opgeslagen procedures ("stored procedures")
- routines
- en het maken van functies
… zijn alleen beschikbaar op Cloudservers.
Ze zijn niet toegestaan op gedeelde servers..
Deze beperking is voornamelijk te wijten aan de potentiële risico's voor de stabiliteit van de infrastructuur. Een onjuiste configuratie of overmatig gebruik van deze functies kan leiden tot oneindige lussen of aanzienlijke overbelasting, wat niet alleen de prestaties van de betreffende server beïnvloedt, maar ook de ervaring van alle klanten die op dezelfde infrastructuur zijn gehost.
Een probleem met het importeren van een MySQL/MariaDB-dump oplossen
Bij het exporteren en vervolgens opnieuw importeren van een MySQL- of MariaDB-database via de hostinginterface van Infomaniak kan het voorkomen dat de bewerking mislukt vanwege fouten die verband houden met de DEFINER van triggers of views. Dit gebeurt wanneer de objecten in de database zijn gemaakt met een specifieke gebruiker (de definer) die niet meer bestaat op het moment van de import.
Concreet maakt het export- en importproces gebruik van een tijdelijke gebruiker, die alleen tijdens deze bewerkingen wordt gebruikt. Nadat deze gebruiker is verwijderd, worden de views of triggers die met dit account als DEFINER zijn gedefinieerd ongeldig, waardoor fouten van het volgende type ontstaan:
Algemene fout: 1449 De opgegeven gebruiker als definitor ('xxxx_temp_1'@'%') bestaat niet
Om dit probleem te voorkomen, kunt u het back-upbestand (dump.sql of dump.sql.gz) corrigeren voordat u het importeert door de definities van definer te vervangen door CURRENT_USER. Hierdoor worden de triggers en weergaven automatisch gekoppeld aan de gebruiker die op het moment van de import is ingelogd.
Hieronder vindt u een voorbeeld van een opdracht waarmee u de dump kunt aanpassen voordat u deze importeert:
sed -E 's/DEFINER=`[^`][^`]*`@`[^`][^`][^`]*`/DEFINER=CURRENT_USER/g' dump.sql > dump-corrected.sql
Nadat deze vervanging is uitgevoerd, kan het gecorrigeerde bestand normaal worden geïmporteerd via het Infomaniak-beheerpaneel. Dit gedrag is bekend en gerelateerd aan de werking van tijdelijke gebruikers tijdens het maken van een back-up/het herstellen van een back-up. Er zijn op korte termijn geen wijzigingen gepland in het export-/importproces, maar het onderwerp wordt nog steeds geëvalueerd op infrastructuurniveau.
Voor meer informatie over de variabele CURRENT_USER, raadpleeg de officiële documentatie van:
Link naar deze veelgestelde vragen: https://faq.infomaniak.com/821
Is deze veelgestelde vragenlijst nuttig geweest?