Websites

Op afstand verbinden met uw database

Where to find your database credentials, why direct remote connections on port 3306 are refused, and how to connect a desktop tool through an SSH tunnel instead.

Waar u uw databasegegevens vindt, waarom directe externe verbindingen op poort 3306 worden geweigerd, en hoe u een desktophulpprogramma in plaats daarvan via een SSH-tunnel verbindt.

Elke KapsuleHost-webhost met een database krijgt zijn eigen database, zijn eigen databasegebruiker en referenties die u op elk moment kunt raadplegen. Wat u niet kunt doen, is er rechtstreeks via internet verbinding mee maken, en dat is opzettelijk. Deze gids behandelt de referenties, de twee ondersteunde manieren om in te loggen, en hoe u de tunnel instelt die desktophulpprogramma's nodig hebben.

Uw referenties zoeken

Ga naar Websites, klik op de site, vervolgens Bestanden, vervolgens Database.

De pagina geeft vijf dingen weer:

VeldWaarde
Host127.0.0.1
Poort3306
Databaseuw databasenaam
Gebruikersnaamuw databasegebruiker
Wachtwoordverborgen, met een knop om weer te geven en een knop om te kopiëren

Het wachtwoord kan niet eenmalig zichtbaar worden gemaakt. U kunt altijd teruggaan en het lezen wanneer u het nodig hebt, dus u hoeft het niet apart op te slaan.

De databaseserver is MariaDB 10.11, wat MySQL-compatibel is. Dat is om één praktische reden belangrijk: een dump die is geëxporteerd van een recente MySQL-server kan tekensets bevatten die MariaDB niet herkent, en het importeren zal mislukken met een fout "onbekende tekenset". Als dat gebeurt, voert u het opnieuw uit met een breed compatibele tekenset zoals utf8mb4_unicode_ci, of zoekt u het op en vervangt u het in het dumpbestand voordat u het importeert.

Het tabblad Database voor een site in KPanel

Waarom de Host 127.0.0.1 is

127.0.0.1 betekent "deze machine". De databaseserver luistert alleen op de interne interface van de machine zelf, en poort 3306 is ook niet geopend voor internet op de firewall. Er is geen instelling in het paneel om dit te openen, en er is geen IP-allowlist ervoor.

Dit is niet per ongeluk. Een internetgerichte databasepoort is een van de meest betrouwbaar misbruikte dingen in hosting: het wordt constant gescand, het lekt versieinformatie naar iedereen die verbinding maakt, en een enkel zwak wachtwoord kost u de hele site. Het dicht houden elimineert dat hele risicocategorie.

Dus een verbindingsreeks met het openbare IP-adres van uw site en poort 3306 zal altijd mislukken, van overal, op elk plan. Er zijn twee ondersteunde manieren om in plaats daarvan in te loggen.

Optie 1: phpMyAdmin in de browser

Het gemakkelijkst voor een snelle blik, een bewerking of een kleine import of export.

Klik op de pagina Database op Open phpMyAdmin. U bent onmiddellijk aangemeld met uw eigen referenties van de site en u ziet alleen uw eigen databases.

De koppeling die dit doet, is opzettelijk van korte duur, en deze mislukt op manieren die er als fouten uitzien maar niet zijn:

  • Deze verloopt in 60 seconden. Klik erop zodra deze wordt weergegeven.
  • Het werkt eenmaal. Teruggaan en opnieuw laden werkt niet; genereer een nieuw exemplaar.
  • Dit moet worden geopend vanuit dezelfde browser en hetzelfde netwerk waarvan u het hebt aangevraagd. Als u de koppeling naar een ander apparaat kopieert, of uw verbinding verandert halverwege het adres, wordt deze geweigerd.

Als u "Deze koppeling is al gebruikt" ziet of een bericht over een IP-verschil, werkt de beveiliging. 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 desktophulpprogramma's

Als u een desktopklant wilt gebruiken, is dit het ondersteunde pad. De tunnel opent een versleutelde verbinding met de server en stuurt een poort op uw eigen machine er doorheen, dus uw klant maakt verbinding met wat lijkt op een lokale database.

Wat u eerst nodig hebt

Een SSH-sleutel op de site. Wachtwoordverificatie wordt niet geaccepteerd, dus deze stap is niet optioneel.

  1. Ga naar Websites, de site, Bestanden, vervolgens SSH-sleutels.
  2. Plak ofwel de openbare sleutel die u al gebruikt, of genereer een nieuw sleutelpaar vanuit het paneel.
  3. Noteer de gebruikersnaam op die pagina. Dit is de systeemgebruiker van uw site, en dit is waarmee u verbinding maakt.

Als u een sleutel in het paneel genereert, wordt de persoonlijke sleutel eenmaal weergegeven en nooit meer. Sla deze onmiddellijk op en bewaar deze op een plaats waar alleen u deze kunt lezen.

U ontvangt ook een e-mail wanneer een sleutel aan uw site wordt toegevoegd. Dat is opzettelijk. Als er een aankomt en dat was niet u, trekt u deze onmiddellijk in vanaf die pagina en leest u Als uw site is gehackt.

Zie SSH-sleutels toevoegen voor het volledige overzicht.

Een SFTP-account dat op het SFTP-tabblad is gemaakt, werkt niet voor een tunnel. Deze accounts zijn alleen voor bestandsoverdracht, zonder shell en geen 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. Uitsplitsen:

  • -N betekent geen opdracht uitvoeren, houdt de tunnel gewoon open.
  • -L 3307:127.0.0.1:3306 stuurt poort 3307 op uw machine door naar poort 3306 op de server.
  • Poort 3307 wordt gebruikt in plaats van 3306, zodat dit niet botst met een database die u lokaal uitvoert.

De opdracht geeft niets af wanneer het werkt. Dat klopt. Houd het terminalvenster open zolang u de verbinding nodig hebt, en druk op Ctrl+C om het te sluiten.

Uw client verbinden

Met de tunnel open, wijst u uw databasehulpprogramma naar:

InstellingWaarde
Host127.0.0.1
Poort3307
Gebruikersnaamde databasegebruikersnaam van de pagina Database
Wachtwoordhet databasewachtwoord van de pagina Database
Databaseuw databasenaam

Noteer de splitsing: de SSH-gebruikersnaam is uw systeemgebruiker van de site, en de database-gebruikersnaam is een ander van de pagina Database. Deze twee door elkaar halen is verreweg de meest voorkomende fout hier.

De meeste desktopklanten hebben ook een ingebouwde optie "verbinden via SSH-tunnel", die precies het bovenstaande doet zonder een aparte terminal. Vul de SSH-host cp1-kapsule.kapsulehost.com, poort 22, uw SSH-gebruikersnaam en uw persoonlijke sleutelbestand in, en vervolgens de databasevelden als hierboven.

Zie Database SSH-tunnel voor setup per client.

Opdrachtlijn op de server

Als u zich op uw gemak voelt in een terminal, hebt u helemaal geen tunnel nodig. Verbind 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 een handmatige dump te maken voordat u een riskante wijziging aanbrengt. Voor WordPress specifiek, WP-CLI is meestal nog beter.

Problemen oplossen

"Verbinding geweigerd" op poort 3306 van uw eigen machine. Verwacht. Zie hierboven. Gebruik een tunnel.

De 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 de opdracht.

"Toestemming geweigerd (publickey)". Verkeerde gebruikersnaam, of de verkeerde sleutel. De gebruikersnaam is de sleutel op de pagina SSH-sleutels, niet uw Kapsule-aanmeldingse-mailadres.

"Adres wordt al gebruikt" voor poort 3307. Een tunnel is al geopend, of iets anders gebruikt die poort. Sluit de andere, of kies een ander lokaal poort zoals 3308.

De tunnel wordt geopend maar de client kan geen verbinding maken. Bevestig dat uw client is gericht op 127.0.0.1 en uw gekozen lokale poort, niet op uw domein.

"Toegang geweigerd voor gebruiker". Databasegegevens, niet SSH. Geven en kopieer ze opnieuw van de pagina Database.

"Onbekende tekenset" bij import. Hierboven behandeld. Opnieuw exporteren met een compatibele tekenset.

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 alles uitvoert dat schrijft. Zie Een back-up maken.

Gerelateerde gidsen

Nog steeds hulp nodig?

Stuur ons een e-mail op support@kapsulehost.com of open een chat in KPanel.

KPanel openen
Op afstand verbinden met uw database