CoreCP

Databases en phpMyAdmin

Bijna elke website bewaart zijn inhoud in een database: WordPress, een webshop, een forum. Deze pagina laat zien hoe je er een aanmaakt, wie erbij mag, en hoe je erin kijkt.

Geschreven voor: Klant, Reseller, Beheerder

Bijna elke website bewaart zijn inhoud in een database: WordPress, een webshop, een forum. Deze pagina laat zien hoe je er een aanmaakt, wie erbij mag, en hoe je erin kijkt.

Beeld — Paneel → HostingAccounts → jouw account → Databases. De pagina heeft drie onderdelen: Databases, Databasegebruikers en Rechten. Schermafdrukken worden gemaakt met openwolf designqc en staan in .wolf/designqc-captures/.

Twee dingen, geen één

Het helpt om ze uit elkaar te houden:

  • Een database is de kast waar de gegevens in liggen.
  • Een databasegebruiker (of login) is de sleutel van die kast.

Een applicatie heeft altijd allebei nodig, plus de afspraak wie welke kast mag openen. Dat laatste heet rechten.

Beide namen krijgen automatisch je accountnaam ervoor. Vul je shop in bij een account dat web1 heet, dan heet de database web1_shop. Dat is geen opsmuk — het is wat voorkomt dat twee klanten op dezelfde server elkaars databasenaam claimen.

Een database aanmaken

  1. Klik Database aanmaken.
  2. Vul een naam in: alleen letters, cijfers en onderstrepingstekens. De accountnaam staat er al voor.
  3. Klik Aanmaken.

Je krijgt in één keer een database en een login met dezelfde naam. Het wachtwoord wordt door de server gemaakt en één keer getoond, in een kaart met een kopieerknop. CoreCP bewaart het nergens.

corectl db add web1 shop        # maakt web1_shop, met login web1_shop
corectl db list
corectl db passwd web1_shop     # nieuw wachtwoord, ook weer één keer getoond
corectl db remove web1_shop

Dit is precies wat je nodig hebt voor wp-config.php of een .env-bestand:

DB_NAME     web1_shop
DB_USER     web1_shop
DB_PASSWORD (het wachtwoord dat je zojuist zag)
DB_HOST     localhost

localhost is goed: applicaties op dezelfde server praten via een socket met de database, niet over het netwerk.

Een tweede login voor dezelfde database

Soms wil je een extra login met minder rechten — een rapportagetool die alleen mag lezen, bijvoorbeeld. Dan maak je een login zónder database en geef je hem daarna toegang.

  1. Ga naar Databasegebruikers en klik Login aanmaken.
  2. Ga naar Rechten, kies de database en de gebruiker, kies alleen lezen en klik Toepassen.
corectl db user add web1 rapportage                                   # → web1_rapportage
corectl db grant web1_shop web1_rapportage --account web1 --privileges readonly
corectl db grant list web1_shop --account web1
corectl db revoke web1_shop web1_rapportage --account web1
corectl db user remove web1_rapportage --account web1

De drie niveaus in het paneel:

wat het mag
vollediglezen, schrijven, tabellen maken en weggooien — wat een applicatie nodig heeft
alleen lezenalleen SELECT — voor rapportage, statistieken, exports
geende toegang weer weghalen

phpMyAdmin openen

Klik bij een database op phpMyAdmin. Er opent een nieuw tabblad waarin je al bent ingelogd als de login van die database — je typt geen wachtwoord. Het ticket daarachter is eenmalig en vervalt binnen een minuut.

corectl phpmyadmin signon web1        # eenmalige inlog vanaf de opdrachtregel
corectl webapps status                # draait phpMyAdmin op deze server?
corectl webapps set --phpmyadmin on

Zie je de knop niet, dan is phpMyAdmin op deze server niet aangezet. Dat is een keuze van je hostingpartij; vraag ernaar.

Exporteren (een kopie maken)

Met phpMyAdmin — open de database, tabblad Exporteren, methode Snel, formaat SQL, en klik Gaan. Je krijgt één .sql-bestand met alles erin.

In de terminal — dit is de betrouwbaardere weg voor grote databases, omdat een browser er niet halverwege mee kan stoppen:

mysqldump --single-transaction --quick web1_shop | gzip > ~/shop-2026-08-10.sql.gz
ls -lh ~/shop-2026-08-10.sql.gz

--single-transaction maakt de export consistent zonder je site te blokkeren.

Importeren (een kopie terugzetten)

Met phpMyAdmin — open de database, tabblad Importeren, kies je bestand. Werkt prima tot enkele tientallen MB; daarboven loopt de browser tegen de uploadlimiet aan.

In de terminal — geen limiet:

zcat ~/shop-2026-08-10.sql.gz | mysql web1_shop
# of, als het bestand niet ingepakt is:
mysql web1_shop < ~/shop.sql

Twee dingen om op te letten:

  • Importeren voegt toe, het vervangt niet. Wil je echt de oude toestand terug, maak dan eerst de tabellen leeg (in phpMyAdmin: OperationsDrop tables, of importeer een dump die zelf DROP TABLE bevat).
  • Een dump uit een andere omgeving bevat vaak de oude webadressen. Voor WordPress is het antwoord daarop een kloon, niet een dump — zie Een testomgeving maken.

Hoeveel mag je?

Het aantal databases komt uit je hostingpakket; je ziet het op het accountoverzicht. Daarnaast begrenst de server per account het aantal gelijktijdige verbindingen en het aantal query's per uur, zodat één drukke site de rest niet plat legt.

corectl db limits show web1

Zie je "te veel verbindingen", dan is dat bijna nooit de database die vol is, maar een applicatie die verbindingen niet netjes sluit.

Als er iets niet klopt

Wat je zietWat het meestal is
"Access denied for user"Verkeerd wachtwoord, of de login heeft geen rechten op déze database. Kijk bij Rechten.
"Unknown database"De naam mist het accountvoorvoegsel. Het is web1_shop, niet shop.
"Can't connect to local MySQL server"DB_HOST staat op iets anders dan localhost.
De phpMyAdmin-knop doet nietsDe browser blokkeerde het nieuwe tabblad. Sta pop-ups voor het paneel toe.
Import stopt bij "Maximum execution time"Het bestand is te groot voor de browser. Doe het in de terminal.
De database is er, maar de site zegt "database connection error"wp-config.php heeft nog het oude wachtwoord. Maak een nieuw wachtwoord aan en zet het erin.

Als phpMyAdmin niet opengaat

De knop phpMyAdmin openen doet hetzelfde als de webmailknop: hij vraagt de server om een eenmalig toegangsbewijs en opent daarmee een nieuw tabblad. Ook hier werd dat tabblad een fractie te laat aangevraagd, waardoor de browser het weigerde en de knop niets leek te doen. Dat is verholpen.

Zie je de knop helemaal niet staan, dan is phpMyAdmin niet geïnstalleerd op de server waar jouw account op staat. Vraag je hostingpartij ernaar; die controleert het zo:

ssh root@stck1.corecp.dev 'corectl db phpmyadmin status'
ssh root@stck1.corecp.dev 'corectl db phpmyadmin install'

Gaat het tabblad nog steeds niet open terwijl de knop er wel staat, dan blokkeert je browser pop-ups voor het paneeladres. Sta ze toe voor dat ene adres.

Zie ook

  • De webterminal — waar mysql en mysqldump draaien.
  • Je eigen backups — een backup van je account bevat je databases.
  • WordPress installeren — daar wordt de database automatisch aangemaakt.