DB-Verbingung auf zweiten Rechner

Alles rund um die Programmierung mit Qt
Antworten
stev92
Beiträge: 2
Registriert: 2. Februar 2011 15:17

DB-Verbingung auf zweiten Rechner

Beitrag von stev92 »

Guten Morgen allerseits

In den letzten paar Wochen musste ich in der Schule ein Projekt mit C++/Qt schreiben welches auf eine MySQL Datenbank zugreift. Das Projekt ist soweit fertig nur noch ein Problem ist zu bewältigen.
Meine Datenbank war zu Entwicklungszwecken immer lokal angelegt. Nun wollte ich die Datenbank auf einen anderen Rechner im Netzwerk verlagern.
Beim Aufmachen der Verbindung gebe ich die IP, den Usernamen und das Passwort mit. Wenn ich dann den MySQL Administrator auf dem Server öffne und auf "Open Connections" klicke, sehe ich 1 offene Verbindung mit den Parametern welche ich mitgegeben habe und eine andere Verbingung namens "unauthorized connection".
Lokal klappt alles mit den gleichen Datenbank Einstellungen.

Infrastruktur:

Server:
- Hostrechner ist WinXP mit Ubuntu 10.10 VM

Client-Rechner:
- Hostrechner ist WinXP mit Ubuntu 10.10 VM

Was ich schon ausprobiert habe:
- in der my.cnf die Zeile "bind adress = 127.0.0.1" auskommentiert
- im Hostrechner des Servers die Firewall ausgeschaltet

Wär euch für ein paar Lösungsansätze sehr dankbar :)

mfg stev92
Mani99
Beiträge: 244
Registriert: 15. April 2009 10:46
Wohnort: München

Beitrag von Mani99 »

Da wird warscheinlich dein user nicht für verbindungen von außen freigegeben sein.

Als erstes solltest du dir die tabelle users anzeigen lassen:

Code: Alles auswählen

use mysql;
select host,user from user;
Danach wirst du warscheinlich feststellen, das für deinen benutzer als host der rechner auf dem die db installiert ist eingetragen ist. Wenn die db lokal bei dir installiert ist, macht das nichts, aber sobald sie remote ist, wirst du ein problem bei der verbindung bekommen.

Also, do kannst entweder den host von dem zugegriffen werden darf durch ein wildcard ersetzen (%) oder durch deine ip adresse. Das musst du vom sicherheitsrelevanten standpunkt aus selber entscheiden.

Entweder

Code: Alles auswählen

[..] set host=’%’ where [...]
oder z.b.

Code: Alles auswählen

[..] set host=’10.0.0.2’ where [...]

Code: Alles auswählen

update user set host=’[neuer_host]’ where user=’[dein_benutzer]’ and host=’[aktueller_host]’;
flush privileges;
stev92
Beiträge: 2
Registriert: 2. Februar 2011 15:17

Beitrag von stev92 »

Mani99 hat geschrieben:Da wird warscheinlich dein user nicht für verbindungen von außen freigegeben sein.
Das klingt eigentlich sehr plausible und wird sehr warscheinlich auch die Lösung sein. Ich werde mich nochmals melden falls es Komplikationen gibt.

Vielen Dank für die schnelle Antwort
Antworten