Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Probleme mit MySQL connection (https://www.delphipraxis.net/86955-probleme-mit-mysql-connection.html)

Ajin 21. Feb 2007 15:18

Datenbank: mySQL • Version: 4 • Zugriff über: mysql.pas

Probleme mit MySQL connection
 
Hallo ihr!

Ich möchte eine user authentifizierung mit einer mit delphi Oberfläche realisieren. Die Userdaten (name u. login) sind in einer mySQL Tabelle im Internet abgelegt.

Natürlich habe ich die Forensuche genutzt und auch verschiedene Beiträge zu diesem bekannten Fall gefunden. Es wurde u.a. auf die CoreLab Komponenten verwiesen. Leider ist das nur eine Demo und das demo-programm hat auch nicht funktioniert.

Das Tutorial mySQL ohne Komponenten hab ich mir auch durchgelesen, klingt alles sehr interessant. Also fix die mysql.pas eingebunden und das connect beispiel getestet. Aber schon beim initialisieren von _myCon

Delphi-Quellcode:
_myCon := mysql_init(nil);
schmeisst eine Exception der Klasse EAccessViolation mit der Meldung: Zugriffsverletzung bei der Adresse 00000000 Lesen von Adresse 00000000 aufgetreten.

Ich nutze Turbo Delphi 2006 und bin nun mehr oder minder ratlos. Von der Nutzung der ADO Komponenten für mySQL wurde im Forum mehrfach abgeraten. Was tun?

Bernhard Geyer 21. Feb 2007 16:59

Re: Probleme mit MySQL connection
 
Zitat:

Zitat von Ajin
Natürlich habe ich die Forensuche genutzt und auch verschiedene Beiträge zu diesem bekannten Fall gefunden. Es wurde u.a. auf die CoreLab Komponenten verwiesen. Leider ist das nur eine Demo und das demo-programm hat auch nicht funktioniert.

Da ich mit den Corelabs-Kompos bisher gute Erfahrungen habe und du keine Fehlermeldungen angiebst sitzt das problem hinter der Tastatur.

Also: Welche Fehlermeldungen wurden dir um die Ohren geschmissen. Ich tipp auf den Standardfehler: Es ist keine direkter Zugriff auf die MySQL-Datenbank über das Internet erlaubt. Check den Zugriff mal mit dem SQL Administrator von MySQL.

Ajin 21. Feb 2007 20:43

Re: Probleme mit MySQL connection
 
Die Fehlermeldung ist:

Fenstercaption: Mydacdemo

Can't connect to MySQL server on '63.76.196.161' (10061)
Socket error on connect. WSAGetLastError return 10060($274C)

- Die Internetconnection war gegeben
- die logindaten stimmen (sind aus meiner config.php des laufenden Forums)

Bernhard Geyer 21. Feb 2007 20:56

Re: Probleme mit MySQL connection
 
Tja, wie vermutet. Entweder blockt eine Firewall diesen Port oder der MySQL-Server "horcht" nicht auf diesen Port.
Bei einem 0815-Webspace mit MySQL wird der Provider defaultmäßig den Zugang nicht extern freischalten. MS-SQL-Blaster läßt grüßen.

Chewie 21. Feb 2007 21:04

Re: Probleme mit MySQL connection
 
Wenn ein Fehler der Marke
Zitat:

Zugriffsverletzung bei der Adresse 00000000 Lesen von Adresse 00000000
auftritt, liegt das meistens daran, dass eine dynamische Bibliothek (oder anders gesagt: eine DLL) nicht eingebunden werden kann. Das wird es in diesem Fall sein. Stell sicher, dass die libmysql.dll irgendwo im Suchpfad (am besten im Anwendungsverzeichnis) liegt. Und stell auch sicher, dass die Version dieser Client-DLL zur Server-Version passt.

Ajin 21. Feb 2007 21:40

Re: Probleme mit MySQL connection
 
Okay ich habe etwas herumexpirentiert. Jetzt hab ich eine andere Fehlermeldung: (Produziert von der Komponente: MyConnection1)

#42000Access denied für user 'test'@" to database 'testbase'

Hmm ich habe also zuwenig Rechte um mich zu connecten?

Thanatos81 21. Feb 2007 22:35

Re: Probleme mit MySQL connection
 
Kommt der Fehler bei nem lokalen / im eigenen Netz befindlichem Testserver, oder beim Server "im Internet"? Wenn letzteres der Fall ist, triift wohl Bernhard Geyers Vermutung aus #4 zu.

Falls deine DB nicht zwingend an diese Seite gebunden ist, schau dir mal db4free.org an, da hast du keinerlei Kosten und externen Zugriff. Ich nutze sleber für ne kleine private Geschichte eine Mischung aus db4free.org und funpic.de; läuft tadellos.

Ajin 21. Feb 2007 22:52

Re: Probleme mit MySQL connection
 
Ja der Fehler tritt beim Server im Internet auf. Der hoster ist www.server4you.de und der mySQL Server "horcht" auf dem Port 3306. Da gibts 2 IPs:

- Internet hostname und (10er IP)
- Externer hostname (62er IP)

Auf dem Server hab ich so ein phpbb plus Portal eingerichtet und genau deren usertabelle möcht ich auslesen. Ich möchte nämlich nur registrierte user die Nutzung des Programms erlauben. Und die user fest im delphi code zu verdrahten wollte ich eben nicht.

Thanatos81 24. Feb 2007 15:15

Re: Probleme mit MySQL connection
 
Hmm, hast du dich bei server4you mal schlau gemacht, ob die ext. Zugriff zu lassen? Falls die das nicht machen, würde ich Folgendes versuchen. Ein PHP-Skript erstellen, dem du User-Name und PW als MD5 übergibst. Dieses Skript gibt dir dann true oder false zurück, je nachdem ob die Daten stimmig sind. Und diese PHP-Seite rufst du dann einfach per Indy-Komponenten auf (Stichwort TidHTTP).

Es klingt zwar im ersten Moment nicht gerade sicher Username + PW so zu übermitteln. Aber bei ner SQL-Connection wäre es im Prinzip auch nicht anders, es sei denn du nimmst eine verschlüsselte Verbindung, aber da könnte man für oben beschriebenes Szenario ja auch https nutzen oder einen eigenen Verschlüsselungsalgo ins Delpi-Prog und PHP-Skript einbinden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:13 Uhr.

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