Möglicherweise möchten Sie von einem Linux-/Mac-Laptop aus eine Verbindung zu MySQL auf Amazon EC2 herstellen. Aus Sicherheitsgründen möchten Sie jedoch möglicherweise keinen Port auf der EC2-Instance öffnen. Sie können stattdessen Ihren lokalen Port über Secure Shell (SSH) weiterleiten. Wenn Sie jetzt eine Verbindung zu Ihrem lokalen Port herstellen, wird dieser weitergeleitet, um stattdessen eine Verbindung zum MySQL-Server auf Amazon EC2 über SSH herzustellen. Es ist nicht erforderlich, den Port Ihres MySQL-Servers auf der EC2-Instance zu öffnen. Da es über SSH läuft, kann es auch niemand verfolgen. So können Sie von Linux/Mac aus über einen SSH-Tunnel eine Verbindung zu MySQL auf Amazon EC2 herstellen.
Wenn Sie mit dem SSH-Tunnel nicht vertraut sind, können Sie sich über das Herstellen einer Verbindung zur Amazon EC2-Instanz von Linux/Mac mithilfe von SSH informieren.
Es ist wirklich einfach. Öffnen Sie einfach die Shell/das Terminal und geben Sie einen Befehl mit der Syntax
ein[sudo] ssh -i "$key" -f -N -L $local_port:127.0.0.1:$remote_port $user@$ec2
Bedeutung:
$Taste – Speicherort Ihrer privaten Schlüsseldatei (.pem), die beim Erstellen einer EC2-Instance von Amazon heruntergeladen wurde
$local_port – Port auf Ihrem lokalen Computer, den Sie an den MySQL-Server auf EC2 weiterleiten. Dies ist der Port, der auf Verbindungsanfragen lauscht
$remote_port – Port, auf dem MySQL-Server auf EC2 läuft. Normalerweise ist es 3306
$user –
- Für ein Amazon Linux-AMI lautet der Benutzername ec2-user .
- Für ein RHEL-AMI ist der Benutzername oft root könnte aber ec2-user sein .
- Für ein Ubuntu-AMI ist der Benutzername ubuntu .
- Andernfalls wenden Sie sich an Ihren AMI-Anbieter.
$ec2 – Öffentliche IP oder öffentlicher DNS-Name der EC2-Instanz
Beispiel:
sudo ssh -i "/tmp/private_key.pem" -f -N -L 3100:127.0.0.1:3306 [email protected]
Dadurch wird Port 3100 auf Ihrem Laptop an Port 3306 auf 192.150.15.1 weitergeleitet. Wenn Sie also versuchen, eine Verbindung zu Port 3100 auf Ihrem Laptop herzustellen, wird dieser an 192.150.15.1 gesendet. Nach Erreichen der EC2-Instanz wird sie an 127.0.0.1:3306 gesendet. In diesem Fall bezieht sich 127.0.0.1 auf 192.150.15.1 und nicht auf Ihren lokalen Computer. Dadurch wird die SSH-Sitzung im Hintergrund ausgeführt. Es muss immer ausgeführt werden, wenn Sie versuchen, eine Verbindung zur MySQL-Datenbank herzustellen.
Verbindung zu MySQL auf Amazon EC2 von Linux/Mac herstellen
Hier als Referenz eine Beispielverbindung mit MySQL Adminstrator, die zu localhost geht:Beachten Sie die Server-Host-Adresse 127.0.0.1, die transparent weitergeleitet wird.
Sie können auch eine Shell / ein Terminal öffnen und eingeben (z. B. das Passwort ist „passwd“)
mysql -h 127.0.0.1 --port 3100 -uroot -ppasswd
Dies bedeutet, dass Sie sich mit Port 3100 auf Ihrem Localhost verbinden. Dadurch wird die Verbindung an den MySQL-Server der EC2-Instance weitergeleitet, der Port 3306 überwacht.