Waar u uw databasegegevens vindt, waarom directe externe verbindingen op poort 3306 geweigerd worden, en hoe u een desktoptool via een SSH-tunnel kunt verbinden in plaats daarvan.
Elke KapsuleHost-website met een database krijgt een eigen database, een eigen databasegebruiker, en inloggegevens die u op elk moment kunt inzien. Wat u niet kunt doen, is er rechtstreeks via het internet verbinding mee maken, en dat is bewust zo. Deze handleiding behandelt de inloggegevens, de twee ondersteunde manieren om verbinding te maken, en hoe u de tunnel instelt die desktop-databasetools nodig hebben.
Uw inloggegevens vinden
Ga naar Websites, klik op de site en dan op Database.
De pagina toont vijf dingen:
| Veld | Waarde |
|---|---|
| Host | 127.0.0.1 |
| Poort | 3306 |
| Database | uw databasenaam |
| Gebruikersnaam | uw databasegebruiker |
| Wachtwoord | verborgen, met een knop om te tonen en een knop om te kopiëren |
Het wachtwoord is geen eenmalige weergave. U kunt er altijd op teruggaan om het te bekijken wanneer u het nodig heeft, dus u hoeft het niet apart op te slaan.
De databaseserver draait op MariaDB 10.11, wat MySQL-compatibel is. Dat is in de praktijk op één punt van belang: een dump die geëxporteerd is vanuit een recente versie van MySQL kan collaties bevatten die MariaDB niet herkent, waardoor het importeren mislukt met een foutmelding "unknown collation". Als dat gebeurt, exporteer dan opnieuw met een breed compatibele collatie zoals utf8mb4_unicode_ci, of zoek en vervang deze in het dumpbestand voordat u importeert.

Waarom de host 127.0.0.1 is
127.0.0.1 betekent "deze machine". De databaseserver luistert alleen op de eigen interne interface van de machine, en poort 3306 staat bij de firewall ook niet open voor het internet. Er is geen instelling in het paneel om deze te openen, en er is geen IP-toelatingslijst beschikbaar.
Dat is geen omissie. Een databasepoort die open staat naar het internet is een van de dingen die in hostingomgevingen het meest betrouwbaar misbruikt worden: er wordt voortdurend naar gescand, het lekt versie-informatie naar iedereen die verbinding maakt, en met één zwak wachtwoord bent u de hele site kwijt. Door de poort gesloten te houden, wordt die hele risicocategorie weggenomen.
Een verbindingsreeks met het publieke IP-adres van uw site en poort 3306 zal dus altijd mislukken, vanaf elke locatie, op elk abonnement. In plaats daarvan zijn er twee ondersteunde manieren om verbinding te maken.
Optie 1: phpMyAdmin in de browser
Het eenvoudigst voor een snelle blik, een wijziging, of een kleine import of export.
Klik op de pagina Database op phpMyAdmin openen. U wordt direct ingelogd met de inloggegevens van uw eigen site en u ziet alleen uw eigen databases.
De link hiervoor is bewust kort geldig, en de manieren waarop hij mislukt, lijken op fouten maar zijn dat niet:
- Hij verloopt na 60 seconden. Klik erop zodra hij verschijnt.
- Hij werkt eenmalig. Teruggaan en herladen werkt niet; genereer een nieuwe link.
- Hij moet geopend worden vanuit dezelfde browser en hetzelfde netwerk als waarmee u hem heeft aangevraagd. Als u de link naar een ander apparaat kopieert, of uw verbinding verandert halverwege van adres, wordt deze geweigerd.
Als u "This link has already been used" ziet, of een melding over een IP-mismatch, dan werkt de beveiliging zoals het hoort. Ga terug naar de pagina Database en klik opnieuw op de knop.
Voor het werken met phpMyAdmin zelf, zie phpMyAdmin gebruiken.
Optie 2: een SSH-tunnel voor desktoptools
Als u een desktopclient wilt gebruiken, is dit de ondersteunde manier. De tunnel opent een versleutelde verbinding naar de server en leidt een poort op uw eigen machine daardoorheen, zodat uw client verbinding maakt met wat eruitziet als een lokale database.
Wat u eerst nodig heeft
Een SSH-sleutel op de site. Authenticatie met een wachtwoord wordt niet geaccepteerd, dus deze stap is niet optioneel.
- Ga naar Websites, de site, Instellingen, en dan SSH-sleutels.
- Plak de publieke sleutel die u al gebruikt, of genereer een nieuw sleutelpaar vanuit het paneel.
- Noteer de gebruikersnaam die op die pagina getoond wordt. Dit is de systeemgebruiker van uw site, en dit is de naam waarmee u verbinding maakt.
Als u een sleutel genereert in het paneel, wordt de privésleutel eenmalig getoond en daarna nooit meer. Sla hem direct op, en bewaar hem ergens waar alleen u er toegang toe heeft.
U ontvangt ook een e-mail telkens wanneer er een sleutel aan uw site wordt toegevoegd. Dat is met opzet zo. Als er een binnenkomt die niet van u afkomstig is, trek deze dan direct op die pagina in en lees Als uw site gehackt is.
Zie SSH-sleutels toevoegen voor de volledige stappen.
Een SFTP-account dat op het tabblad SFTP is aangemaakt, werkt niet voor een tunnel. Die accounts zijn uitsluitend bedoeld voor bestandsoverdracht, zonder shell en zonder poortdoorschakeling. Tunneling vereist de eigen SSH-gebruiker van de site met een sleutel. Zie SFTP-toegang.
De tunnel openen
Vanuit een terminal op uw eigen machine:
ssh -N -L 3307:127.0.0.1:3306 your-ssh-user@cp1-kapsule.kapsulehost.com
Vervang your-ssh-user door de gebruikersnaam van de pagina SSH-sleutels. Even uitgesplitst:
-Nbetekent: voer geen commando uit, houd alleen de tunnel open.-L 3307:127.0.0.1:3306leidt poort 3307 op uw machine door naar poort 3306 op de server.- Poort 3307 wordt gebruikt in plaats van 3306 zodat deze niet botst met een database die u mogelijk lokaal al heeft draaien.
Het commando toont niets wanneer het werkt. Dat klopt. Laat het terminalvenster open zolang u de verbinding nodig heeft, en druk op Ctrl+C om deze te sluiten.
Uw client verbinden
Met de tunnel open, wijst u uw databasetool naar:
| Instelling | Waarde |
|---|---|
| Host | 127.0.0.1 |
| Poort | 3307 |
| Gebruikersnaam | de databasegebruikersnaam van de pagina Database |
| Wachtwoord | het databasewachtwoord van de pagina Database |
| Database | uw databasenaam |
Let op het onderscheid: de SSH-gebruikersnaam is de systeemgebruiker van uw site, en de database-gebruikersnaam is een andere, afkomstig van de pagina Database. Deze twee door elkaar halen is verreweg de meest voorkomende fout hierbij.
De meeste desktopclients hebben ook een ingebouwde optie "verbinden via SSH-tunnel", die precies bovenstaande doet zonder aparte terminal. Vul de SSH-host cp1-kapsule.kapsulehost.com in, poort 22, uw SSH-gebruikersnaam, en uw privésleutelbestand, en vervolgens de databasevelden zoals hierboven.
Zie Database-SSH-tunnel voor instellingen per client.
Opdrachtregel op de server
Als u vertrouwd bent met een terminal, heeft u helemaal geen tunnel nodig. Maak verbinding via SSH en werk rechtstreeks op de server:
ssh your-ssh-user@cp1-kapsule.kapsulehost.com
mysqldump -u DBUSER -p DBNAME > backup.sql
Dit is veel sneller dan een grote database door een tunnel trekken, en het is de juiste manier om handmatig een dump te maken voordat u een risicovolle wijziging doorvoert. Voor WordPress specifiek is WP-CLI meestal nog beter.
Probleemoplossing
"Connection refused" op poort 3306 vanaf uw eigen machine. Verwacht gedrag. Zie hierboven. Gebruik een tunnel.
Het tunnelcommando vraagt om een wachtwoord. Uw sleutel wordt niet aangeboden of is niet geïnstalleerd. Controleer of de sleutel op de pagina SSH-sleutels staat en voeg -i /path/to/your/private/key toe aan het commando.
"Permission denied (publickey)". Verkeerde gebruikersnaam, of de verkeerde sleutel. De gebruikersnaam is die op de pagina SSH-sleutels, niet uw KapsuleHost-inlogemailadres.
"Address already in use" voor poort 3307. Er is al een tunnel open, of iets anders gebruikt die poort. Sluit de andere, of kies een andere lokale poort, zoals 3308.
De tunnel opent, maar de client kan geen verbinding maken. Controleer of uw client gericht is op 127.0.0.1 en uw gekozen lokale poort, en niet op uw domein.
"Access denied for user". Databasegegevens, geen SSH. Toon en kopieer ze opnieuw vanaf de pagina Database.
"Unknown collation" bij importeren. Hierboven behandeld. Exporteer opnieuw met een compatibele collatie.
Alles wat u in een databaseclient doet, gebeurt onmiddellijk en kan niet ongedaan worden gemaakt. Er is geen bevestigingsstap en geen prullenbak. Maak een back-up voordat u iets uitvoert dat schrijft. Zie Een back-up maken.