externe sql verbindung herstellen

nicoschuck

New Member
Hallo,
Ich habe folgendes Problem.
Ich habe bei Strato einen Root Server () erworben.
Diesen habe ich mit den üblichen Updates, Apache2, Php5, phpmyadmin, MySql und proftpd ausgestattet.
Phpmyadmin läuft auch auf der Seite. Aber ich kann nicht mit der SQL Workbench drauf zugreifen.
Bei dem Test habe ich bemerkt dass generell iwas ziemlich schief läuft:


root@h2506114:~# telnet localhost 3306
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
S
5.5.50-0+deb8u1uC}q={tT▒hVT&\~(Fi`%4mysql_native_password

!#08S01Got packets out of orderConnection closed by foreign host.
root@h2506114:~#



Bei der my.cnf habe ich bind 0.0.0.0 eingestellt. Das ist so ziemlich alles was ich herrausgefunden habe im Internet. Hat vll jemand eine Idee woran es liegen kann.
BTW ich bin Linux anfänger deswegen hoffe ich auf ein wenig Nachsicht.
 
Hat vll jemand eine Idee woran es liegen kann.

Hast du den MySQL-Server nach der Konfigurationsänderung neugestartet?
Auf welcher IP lauscht der MySQL-Server?

Bitte arbeite außerdem mit iptables, damit nur Systeme Zugriff auf den MySQL-Server haben, welche diesen auch unbedingt benötigen.

[...]
BTW ich bin Linux anfänger deswegen hoffe ich auf ein wenig Nachsicht.

Diese Passage überlasse ich den Anderen. ;)
 
Hallo d3p,
danke für die schnelle Antwort.
Ja den Server habe ich neugestartet.
Von iptables habe ich auch schon gelesen. Aber das geht ja in Richtung Server Sicherheit, was ich in Angriff nehmen sobald der Server richtig läuft^^

Die Frage welcher IP SQL lauscht verstehe ich nicht. Wo finde ich die herraus?
Ich habe bei der Workbench immer den Domain Namen eingegeben (h2506114.stratoserver.net).
 
habe ich vergessen zu schreiben. ja das habe ich auch schon gemacht. ich glaube es liegt daran dass die db von außen keinen zugriff erlaubt.
sonst müsste ich doch bei telnet meineip 3306 ein bestätigung bekommen oder?
 
Hm, wenn ich einen telnet auf h2506114.stratoserver.net 3306 von meinem Server aus mache, komme ich durch. Daran sollte es wohl nicht liegen.

Was gibt denn SQL Workbench als Fehlermeldung aus?
 
echt?
Wieso kommt bei mir dann die oben beschriebene Fehlermeldung?
Also die Workbench gibt aus Failer to connect ..... with user root.
(Acces denied für user 'root' @'ip(also die Zahlenkombi)'(using password: YES)
root müsste doch die Berechtigung haben?
Meine Eingaben waren:
Hostname: http://h2506114.stratoserver.net/
Username: root
passwort: das sql pw was ich bei der Instellation vergeben habe (was ich auch bei phpmyadmin benutze)
 
So gut kenne ich mich nicht mit MySQL aus, aber ich denke per root-User kommt man nicht ohne weiteres von außen auf die MySQL-Datenbank.

Du solltest am Besten einen neuen MySQL-User erstellen und diesen für den Zugriff über SQL Workbench verwenden.
 
Wie sind die Zugangsrechte für den MySQL-Nutzer root?
Abzufragen mit SHOW GRANTS FOR 'root';
Wenn nämlich wirklich Zugriff von überall* mit dem Nutzer root möglich ist, sollte da was stehen.
Ansonsten wird SHOW GRANTS; dir alle Nutzer zeigen.

*überall bedeutet bei MySQL dass da TO '.....'@'%' steht.
 
Last edited by a moderator:
ok ich glaube ich habe mein Fehler gefunden.
ich habe beim anlegen der user in PUTTY keine DB vorher ausgewählt.
Nun brauche ich nur noch die Rechte.
GRANT ALL PRIVILEGES ON dbTest.* To 'user'@'hostname' IDENTIFIED BY 'password';

habe ich getan aber bekomme nicht die Tabellen angezeigt die in der DB vorhanden sind. Generell ist das alle leer.
Ich bin dir aufjedenfall sehr dnakbar für deine Geduld und Hilfe

@Gwen Dragon:
ich habe das mal für meinen neu angelegten User gemacht:

mysql> SHOW GRANTS FOR 'nicos';
+-----------------------------------+
| Grants for nicos@% |
+-----------------------------------+
| GRANT USAGE ON *.* TO 'nicos'@'%' |
+-----------------------------------+
 
Last edited by a moderator:
Hm, früher musste man nach Grants den Befehl "FLUSH PRIVILEGES;" ausführen, ich weiss nicht ob das heute noch nötig ist...
 
Das ist ja alles abenteuerlich hier.. :D

Zu deinem eigentlichen Problem: http://stackoverflow.com/a/16288118
(erster Google Treffer übrigens!)

Und die angelegten User mit den erlaubten Hosts anzuzeigen, kannst du diese Query benutzen:
Code:
select * from mysql.user;

Und zu deinen Telnet-Spielereien: Der MySQL-Server spricht doch ein ganz anderes Protokoll als du mit deinem zweckentfremdeten Telnet. Kein Wunder, dass er sich dann beschwert weil er dich nicht versteht. Solange du dich überhaupt verbinden kannst, ist alles gut.
 
Und nun solltest Du Dich schnellstens um die Sicherheit des SQL Servers kümmern. Die Standardeinstellung, dass nämlich kein User sich von extern via SQL verbinden kann, hat schon seinen Grund.

Den SQL Server von extern mit root verwenden zu können, ist zwar komfortabel für Dich, aber halt auch ein Leckerbissen für jeden Hacker, der Deinen Server scannt. Und das passiert andauernd.
 
Back
Top