sql >> Database >  >> RDS >> Mysql

Op afstand verbinding maken met een MySQL-database op onze gedeelde server

Vanwege veiligheidsredenen, externe MySQL-verbinding is uitgeschakeld op onze Shared Hosting-servers. U kunt echter eenvoudig een SSH-tunnel opzetten tussen uw computer en onze server met behulp van een SSH-client met de MySQL-poort 3306 forwarding.

Hierna hebt u poort 5522 op uw lokale machine die luistert naar en doorstuurt naar de localhost van uw externe server op poort 3306. Nu kunt u effectief verbinding maken met de externe de MySQL-database van de server alsof deze op uw lokale box draait.

OPMERKING :Als u verbinding probeert te maken met PostgreSQL databases, gebruik poort 5432 in plaats van 3306.

Hieronder vindt u de stappen voor het configureren van een externe SSH-client (PuTTY) en MacOS en Linux ingebouwd in één (Terminal) .

OPMERKING :zorg ervoor dat de SSH-toegang is ingeschakeld voor uw account. Volg gerust deze handleiding om de instellingen te controleren.

Hier is een lijst met details die je nodig hebt tijdens het proces:

SSH-verbindingsdetails :
  • Hostnaam server:server168.web-hosting.com
  • Poort:21098
  • cPanel gebruikersnaam:tunneltest
  • cPanel-wachtwoord:cpanel_password


De hostnaam van uw server zal anders zijn voor uw account. U kunt dit controleren in uw welkomstmail voor uw hostingplan.

Uw cPanel-gebruikersnaam en -wachtwoord zijn wat u gebruikt om in te loggen op uw cPanel-account.

De poort wordt hetzelfde voor alle Shared Hosting-servers.

Server-side MySQL-details :
  • Hostnaam server:127.0.0.1
  • Poort:3306
  • Databasenaam:tunneltest_db
  • Databasegebruiker:tunneltest_user
  • Databasewachtwoord:db_user_password


De hostnaam en poort van uw server zijn hetzelfde voor alle Shared Hosting-servers.

Uw databasenaam, gebruiker en wachtwoord zijn wat u hebt opgegeven tijdens het maken van de database in het MySQL-databasemenu. Als je niet bekend bent met dit menu, lees dan gerust dit artikel.

Tunneldetails :
  • Lokale IP:127.0.0.1
  • Lokale poort:5522
  • Extern IP-adres:127.0.0.1
  • Externe poort:3306


Uw lokale IP-adres en poort kunnen naar uw voorkeur worden gewijzigd.

Aangezien sommige van onze klanten lokale MySQL-servers gebruiken op de 3306-poort, laten we de 5522 gebruiken port in dit voorbeeld om ervoor te zorgen dat de lokale poort door geen enkele service wordt gebruikt.

Uw externe IP-adres en poort moeten overeenkomen met de serverhostnaam en poort van Server-side MySQL-details en kan niet worden gewijzigd.

Client-side MySQL-details :
  • Hostnaam server:127.0.0.1
  • Poort:5522
  • Databasenaam:tunneltest_db
  • Databasegebruiker:tunneltest_user
  • Databasewachtwoord:bCsLHA5xs8AQ


Dit zijn de toegangsgegevens die u zult gebruiken aan het einde van de app of website die u op afstand probeert te verbinden met de database. De hostnaam en poort van uw server moeten overeenkomen met het lokale IP-adres en de poort van de Tunneldetails .

Uw databasenaam, gebruiker en wachtwoord moeten overeenkomen met de corresponderende waarden van Server-side MySQL-details .



Verbinden met PuTTY
Verbinden met Terminal (voor Linux en MacOS)



Verbinden met PuTTY

1. Voer de applicatie uit.
2. Ga naar de Verbinding tabblad van de 'Gegevens ' sectie en zorg ervoor dat de Auto-login gebruikersnaam veld leeg is (je kunt daar ook je cPanel-gebruikersnaam invullen), en de 'Prompt ' optie is aangevinkt:



3. Ga naar de Verbinding>> SSH>> Tunnels en vul de waarden in die worden vermeld in Tunneldetails als volgt:
Bronpoort =Lokale poort
Destination =RemoteIP:RemotePort

Zorg ervoor dat de 'Lokale '-modus is aangevinkt en klik vervolgens op Toevoegen :



Zodra je dit hebt gedaan, zou je de tunnel in het veld moeten zien hierboven:



4. Ga naar de Sessie en vul de hostnaam en poort in met de serverhostnaam en poort uit uw SSH-verbindingsdetails . Kies nu een naam voor deze preset en typ deze in het veld Saved Sessions. Klik op Opslaan om deze configuratie op te slaan.



5. Klik nu op Openen om een ​​verbinding met de server tot stand te brengen.

OPMERKING :Aangezien u uw sessie-instellingen al heeft opgeslagen, kunt u de volgende keer dat u een SSH-tunnel wilt openen stap 1-4 overslaan.

Selecteer eenvoudig de opgeslagen voorinstelling in de lijst, klik op Laden en Open om het te gebruiken.

6. Wanneer u voor de eerste keer verbinding maakt met de server, verschijnt er een beveiligingswaarschuwing. Klik op Accepteren om verder te gaan.



7. U wordt nu gevraagd om uw cPanel-gebruikersnaam en -wachtwoord in uw SSH-verbindingsgegevens in te voeren. .

OPMERKING :Symbolen verschijnen niet in de terminal wanneer u het wachtwoord invoert. Het is Terminal's manier om uw wachtwoord veilig te houden.

Zodra het wachtwoord is geaccepteerd, verschijnt er een serverprompt. De SSH-tunnel is nu tot stand gebracht en alle verbindingen met localhost via poort 5522 worden doorgestuurd naar uw hostingaccount.



OPMERKING :De SSH-tunnel werkt zolang dit venster actief is. Sluit dit venster NIET totdat u klaar bent met het werken met de database.

We kunnen nu verbinding maken met een database op de Shared Hosting-server met behulp van de Client-side MySQL-details met elke MySQL-client. Bijvoorbeeld:






Verbinden met Terminal (voor Linux en MacOS )


1. Start de toepassing en voer de volgende opdracht in:

ssh -f [email protected] -p21098 -L 5522:127.0.0.1:3306 -N

"[email protected] -p21098" wordt ingevuld met SSH-verbindingsdetails :
[cpanel account]@[server hostname] -p[port]

"-L 5522:127.0.0.1:3306" wordt ingevuld met Tunneldetails :
[Lokale poort]:[Remote IP]:[Remote Port]

Het lokale IP-adres is in dit geval niet gespecificeerd en is standaard 127.0.0.1

2. Druk op Enter en geef uw cPanel-wachtwoord op (symbolen verschijnen niet in de terminal wanneer u het wachtwoord invoert - dit is de manier waarop Terminal uw wachtwoord veilig houdt).

Als dit de eerste keer is dat u hiermee verbinding maakt server, verschijnt de volgende prompt:Weet u zeker dat u door wilt gaan met verbinden (ja/nee)? Typ ja en druk op enter om verder te gaan.

3. Zodra je dit hebt gedaan, worden alle verbindingen met localhost via poort 5522 doorgestuurd naar je hostingaccount. We kunnen nu verbinding maken met een database op de Shared Hosting-server met behulp van de Client-side MySQL-details met elke MySQL-client.

Hier is een voorbeeld met een opdrachtregel MySQL-client:

mysql -h 127.0.0.1 -P 5522 tunneltest_db -p -u tunneltest_user

Het eindresultaat ziet er als volgt uit:





Dat is het!
  1. Hoe 1985-02-07T00:00:00.000Z (ISO8601) naar een datumwaarde in Oracle te converteren?

  2. Wat te denken van het ASYNC NETWORK IO-wachttype?

  3. LOAD DATA INFILE equivalent in Oracle

  4. Hoe de beperking van de externe sleutel in de SQL Server-database te laten vallen - SQL Server / TSQL-zelfstudie, deel 75