Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi mysql login über Netzwerk (https://www.delphipraxis.net/77948-mysql-login-ueber-netzwerk.html)

clock50 27. Sep 2006 07:53

Datenbank: MySQL • Version: 5 • Zugriff über: zeos

mysql login über Netzwerk
 
Hallo zusammen,

ich weiß nicht, was ich falsch mache. Ich möchte mich mit meinem Programm (mit zeos Komponenten) über Netzwerk verbinden. Auf dem localhost geht alles super aber über Netzwerk nicht. Wie müßen den die Angaben Host, Port und Database aussehen wenn der PC mit dem DB-Server die Adresse 192.168.2.11 hat die Datenbank Preise heist und ich Apache mit mysql benutze?

vorab schon mal Danke.

Andidreas 27. Sep 2006 08:01

Re: mysql login über Netzwerk
 
aloha...

die angaben sind eigentlich fast gleich wie beim localhost

bsp. login localhost:

server host: localhost
username: root
password:
database: mysql
port: 3306
protocol: mysql


bsp. login mit user:

server host: deine ip
username: user1
password: pw1
database: mysql
port: 3306
protocol: mysql

wenn du willst kannst du ja mal bischen code von dir posten... vielleicht hast du ja in deinem code irgendwo nen fehler

clock50 27. Sep 2006 08:07

Re: mysql login über Netzwerk
 
Danke, das ging ja fix.
Aber ich habe schon alles so versucht.?!
Oder kann es sein, daß ich mich von einem anderen PC nicht mit "root" einlogen kann?

freak4fun 27. Sep 2006 08:09

Re: mysql login über Netzwerk
 
Zitat:

Zitat von clock50
Oder kann es sein, daß ich mich von einem anderen PC nicht mit "root" einlogen kann?

Wenn in der Datenbank ein Benutzer Root existiert, müsste es gehen. ;) Hast du auch keine Firewall, die da was blocken kann?

MfG
freak

wfoertsch 27. Sep 2006 08:35

Re: mysql login über Netzwerk
 
Zitat:

Zitat von clock50
Hallo zusammen,

ich weiß nicht, was ich falsch mache. Ich möchte mich mit meinem Programm (mit zeos Komponenten) über Netzwerk verbinden. Auf dem localhost geht alles super aber über Netzwerk nicht. Wie müßen den die Angaben Host, Port und Database aussehen wenn der PC mit dem DB-Server die Adresse 192.168.2.11 hat die Datenbank Preise heist und ich Apache mit mysql benutze?

vorab schon mal Danke.


schau mal ob du in deiner mysql konfig kein skip-networking drinnen hast :-D

gruss Wolle

Andidreas 27. Sep 2006 08:40

Re: mysql login über Netzwerk
 
@clock

ok ich habs gerade auch getestet mit root bei mir und bin prompt auf die schnauze gefallen...
als ichs mit unserem allgemein login probiert (bzw. mit unserem user denn wir in der mysql db angelegt haben),
hats dann einwandfrei funktioniert...

folgendes gilt es zu beachten bzw. folgendes solltest du vielleicht mal überprüfen:

zugriff mit root auf mysql
willst du dich mit root auf einer mysql db anmelden die auf einem server liegt, muss der pc name oder die
ip in der user tabelle hinterlegt sein...
ist dies nicht der fall, kannst du dich nicht auf der mysql db anmelden weil sie dich nicht kennt und dir denn
zutritt verweigert...

deine ip (oder pc name) kannst du wie folgt in der user tabelle speicher:

SQL-Code:
Grant All Privileges on *.* To root@10.32.000.000 Identified by ''
eventuell musst du die ip adresse in hochkommas setzen, das weiß ich aber nicht mehr so genau...
und beim pc namen muss nach dem namen noch ein '%' eingetippt werden...

damit du sofort berechtigt bist musst du noch
SQL-Code:
Flush Privileges
eingeben

diese befehele müssen direkt auf dem server eingegeben werden


einfacher wird es wenn du dir nen user über denn mysqladministrator von mysql anlegst

freak4fun 27. Sep 2006 08:55

Re: mysql login über Netzwerk
 
Muss ich dann für jede IP einen User anlegen? Wenn ich das übers Internet machen will, ändert sich doch die IP immer, geht das auch?

Danke Andidreas, das funktioniert super! :hello:

MfG
freak

uwewo 27. Sep 2006 08:58

Re: mysql login über Netzwerk
 
Zitat:

Zitat von freak4fun
Muss ich dann für jede IP einen User anlegen? Wenn ich das übers Internet machen will, ändert sich doch die IP immer, geht das auch?

Nein, mußt Du nicht lege eine User an mit Host = %

Andidreas 27. Sep 2006 09:02

Re: mysql login über Netzwerk
 
Zitat:

Zitat von freak4fun
Muss ich dann für jede IP einen User anlegen? Wenn ich das übers Internet machen will, ändert sich doch die IP immer, geht das auch?

Danke Andidreas, das funktioniert super! :hello:

MfG
freak

genau das problem mit der ip, das sie wechselt hatten wir bei uns in der firma auch...
deshalb hab ich bei uns alles auf einen allgemeinen user umgestellt, da mit unserer mysql db im moment nur getestet wird... wenn wir produktiv damit arbeiten muss ich halt noch ein paar user anlegen ^^ aber wenn kümmerts ;)

wie meinst du das ob du für jede ip einen user anlegen musst???

clock50 27. Sep 2006 09:45

Re: mysql login über Netzwerk
 
Hallo,
ich habe jetzt einen neuen User angelegt mit IP, auch nach neustart von mysql kann ich mich nicht einlogen.
Als Meldung bekomme ich vom localhost:
Zitat:

44: 2006-09-27 10:30:21 cat: Connect, proto: mysql-4.0, msg: CONNECT TO "apart" AS USER "clock", errcode: 1045, error: Access denied for user: 'clock@localhost' (Using password: YES)
übers Netzwerk:
Zitat:

34: 2006-09-27 10:33:44 cat: Connect, proto: mysql-4.0, msg: CONNECT TO "apart" AS USER "clock", errcode: 2003, error: Can't connect to MySQL server on '192.168.2.11' (10061)
was mache ich falsch?

Andidreas 27. Sep 2006 09:52

Re: mysql login über Netzwerk
 
läuft deine mysql db???

ich hab gerade meine lokale mysql db gestoppt und versucht mich zu connecten...
fehlermeldung war die gleiche wie du gekriegt hast wenn du dich übers netzwerk einloggen willst...


wie hast du den user angelegt?

freak4fun 27. Sep 2006 09:53

Re: mysql login über Netzwerk
 
Ich hab eigentlich nur das SQL-Statement von Andidreas ausgeführt und dann vom anderen Rechner aus mein Programm gestartet. Die einzige Änderung ist der Host. Der hat die IP des Rechners mit der DB bekommen. Den alten root-USer mit localhost, muss es ja weiterhin geben.

MfG
freak

clock50 27. Sep 2006 10:16

Re: mysql login über Netzwerk
 
Kann es sein, daß man noch was in der my.ini umstellen muß?

morri 27. Sep 2006 10:19

Re: mysql login über Netzwerk
 
Versuche es mal mit den anderen Protokollen bei zeos.

Ich hatte auch diesen Fehler immer und dann habe ich mysql3.23 genommem, obwohl ich 5 drauf habe.
Damit ging es aber.

clock50 28. Sep 2006 06:20

Re: mysql login über Netzwerk
 
Hallo, zusammen. Also ich habe immer noch keine Verbindung zur DB.
Zitat:

läuft deine mysql db???

ich hab gerade meine lokale mysql db gestoppt und versucht mich zu connecten...
fehlermeldung war die gleiche wie du gekriegt hast wenn du dich übers netzwerk einloggen willst...
Ja sie läuft. Ich habe mich dabei gemacht und ein script in php geschrieben um zu sehen ob ich an die Daten komme... ja!!!!

So nun bin ich noch keinen Schritt weiter. :wall: Es kann doch nicht so schwer sein, oder bin ich zu blöd?

Ich habe mal einen Screeshot von allen Usern die Zugriff haben gemacht.

Wenn ich nun versuche mich über das Web-Interface einzulogen geht das nur mit root und Kennwort. Bei allen anderen habe ich keinen Erfolg.?

Andidreas 28. Sep 2006 06:55

Re: mysql login über Netzwerk
 
wie hast du denn deine user auf der mysql db angelegt???

über denn mysqladministrator von mysql??? oder hast du nur die ip's/pc namen hinterlegt???

clock50 28. Sep 2006 07:49

Re: mysql login über Netzwerk
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe den Screenshot vergessen.

clock50 28. Sep 2006 08:54

Re: mysql login über Netzwerk
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, nun eine neue Tatsache:

Ich habe geschrieben, daß ich mich über das Web-Interface anmelden kann, das geht ja auch - aber was ich eben erst versucht habe eine DB auszuwählen, das geht nicht!!!! Da bekomme ich die selbe Meldung wie in meinem Programm - wenn ich mit zeos darauf zugreife. Allerdings bekomme ich hier eine ergänzende Aussage siehe Bild.
Zitat:

phpMyAdmin hat versucht eine Verbindung zum MySQL-Server aufzubauen, jedoch hat dieser die Verbindung zurückgewiesen. Sie sollten Ihre Einstellungen für Host, Benutzername und Kennwort in Ihrer config.inc.php überprüfen und sich vergewissern, dass diese den Informationen, welche sie vom Administrator erhalten haben, entsprechen.

Fehler

MySQL meldet:


#2003 - Can't connect to MySQL server on 'localhost' (10061)
Hat einer ne Ahnung welche Einstellungen das sind? Die Datei habe ich gefunden aber da steht ne ganze Menge drin.

clock50 29. Sep 2006 12:10

Re: mysql login über Netzwerk
 
Hat keiner ne Idee?

SirTwist 29. Sep 2006 22:46

Re: mysql login über Netzwerk
 
Hallo,

bevor Du die MySQL-DB übers Netz erreichbar machst, solltest Du Dich unbedingt mit der Rechtevergabe von MySQL-Datenbanken beschäftigen. Der Befehl, der dir da genannt wurde, hat volle Root-Rechte für alle freigeschaltet, ohne dass man ein Kennwort angeben muss!

MySQL hat im Prinzip zwei wichtige Tabellen in der Datenbank 'mysql': in 'user' wird verwaltet, wer sich einloggen darf und von welchem Rechner aus und in 'db' wird verwaltet, auf welche Datenbanken er zugreifen kann.

In der Tabelle 'user' werden die Felder 'Host', 'User' und 'Password' zur Authentisierung genutzt, dabei kann 'Host' den String '%' enthalten, der für alle Hostnamen (außer localhost!) gilt. Dann gibt es eine Reihe von *_priv-Feldern: Diese legen die globalen Rechte des Users fest, gelten also für alle Datenbanken. Normalerweise sollte hier überall 'N' stehen, außer beim root-Account. Sicherheitshalber sollte der root-Account aber nur für localhost definiert sein.

In der Tabelle 'db' gibt es dann nochmal die Felder 'Host' und 'User', aber zusätzlich 'Db'. Und dann folgen nochmal die *_priv-Felder, über die jetzt gezielt für einen User von einem bestimmten Host (oder halt von '%') für eine bestimmte Datenbank die Rechte gesetzt werden können.

Ich hoffe, das hat Dir jetzt etwas weitergeholfen...

Gruß,
Michael


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz