Connect Problem

the_condor

Registered User
Hallo Gemeinde,

mir ist bekannt das die mysql ja standart mäßig nicht via Remote Connection funktioniert. Jetzt ist es aber so das ich einem Host mit der IP 123.*** Zugang auf einen Datenbank geben muss, da dort Statistik werte ausgelesen werden müssen.

Ich habe Probiert einen User zu erstellen mit eingeschränkten Rechten, mit der Option Jeder Host oder Hosttabelle und habe dort die IP des anderen mysql Host eingeschrieben, funktioniert einfach nicht.

Fehlermeldung ist ganz klar, kein Connect zu MYSQL Database.

Was könnte ich machen um die Sicherheit nicht zu gefährten und dem 1 User Trozdem Zugang zu gewähren.

Wäre für alle Tips dankbar.

mfg
the_condor
 
In der Config kannst Du den Port nur für alle oder keinen Benutzer freigeben.

--> Benutze einen ssh-Tunnel, dann kann der eine Benutzer darüber zugreifen.
Code:
ssh -N -L 12345:127.0.0.1:3306  user@server&
Dann kann der entfernte Benutzer folgendermaßen darauf zugreifen
Code:
mysql -h 127.0.0.1 -P12345 ...
 
Hallo LinuxAdmin,

danke für deine schnelle Antwort. Sehe ich das Richtig das ich dann den Port von dem einen Server/mysql 3306 ändern muss? Da beide Host 3306 als Mysql Port hätten und das so nicht geht.

ERROR 1045 (28000): Access denied for user 'genrator'@'localhost' (using password: YES)

Zum anderen habe ich das Problem das mein ssh port nicht 22 ist, diesen habe ich zum testen wieder re gesetzt.

ssh -N -L 3306:**.47.1*9.***:3306 testus3@wicki-world.info /// könnte ich hier normal einen anderen Port eingeben um auf den anderen ssh port zu connecten?

Danke

mfg
the_condor
 
Ich glaube dein Denkansatz ist etwas falsch.

Mit einem SSH-Tunnel ist gemeint, dass sich beide Rechner via SSH verbinden. Wenn du also den Standartport 22 für SSH verwendest, verbinden sich beide Rechner über diesen Port miteinander. Erst dann verbindet man sich mit dem Mysql-Server.

Das ganze sieht ungefähr so aus:
Server1-ssh -> Server2-ssh ->Mysql über 127.0.0.1, also localhost.
 
Ich hätte es vielleicht etwas präziser schreiben sollen ;) In der Config des zweiten mysqld brauchst Du nichts ändern, da Du für den Tunnel beliebige Ports verwenden kannst:

Server: /etc/my.cnf
Code:
[mysqld]
bind-address    = 127.0.0.1
port            = 3306
Der mysql-Service lauscht nur auf dem internen Interface, auf der üblichen Adresse.

Benutzer-Rechner (bzw. Server2):
1. Tunnel aufbauen:
Code:
ssh -p 2223 -N -L 12345:127.0.0.1:3306  user@server&
Damit wird ein Tunnel via ssh (Port 2223 auf dem Server) zum Server aufgebaut, der den dortigen lokalen mysql-Port (s.o.) lokal auf Port 12345 verfügbar macht. Somit kann man dann auf dem Benutzer-Rechner/Server2 mit
Code:
mysql -h 127.0.0.1 -P12345 -uUser -p
auf den mysqld auf dem Server zugreifen, da alle Pakete direkt über die ssh-Verbindung weitergeleitet werden.
 
Back
Top