Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MySQL direct - aber wie? (https://www.delphipraxis.net/132338-mysql-direct-aber-wie.html)

Exterior 10. Apr 2009 01:20

Datenbank: MySQL • Zugriff über: MySQL direct

MySQL direct - aber wie?
 
Hallo Leute, hab mal wieder eine Frage zum Thema Datenbanken und Delphi:

Ich habe vor, eine Software zu schreiben, mit welcher ich auf eine MySQL-Datenbank auf einem Server zugreifen kann.

Dafür habe ich mir einen Test-Account bei einem Webhoster anlegen lassen, zu dem ich demnächst wechseln möchte.

folgende Daten hat man mir gegeben (wurden allerdings abgeändert):

Zitat:

Kunde: web12
Passwort: abcdefg

Die Webseite ist über folgende Testdomain zu erreichen:
http://mustermann.srv27.ffm.w-united.de

Mit den Zugangsdaten können Sie sich in Confixx, der Accountverwaltung, einloggen: http://srv27.ffm.w-united.de
Den Zugriff wollte ich nun mit MySQL-direct implementieren, anhand dieses Tutorials.

Mit meinem lokalen WAMP bekomme ich das ganze ohne Probleme hin.

Aber wie funktioniert das ganze nun mit einer Datenbank auf einem richtigen Server?

Für die Connection wird folgender Code verwendet:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  // Eigenschaften setzen
  FMysql.Host := 'localhost';
  FMysql.port := 3306;
  FMysql.user :=' user1';
  FMysql.password := '1234';
  FMysql.UnixSocket := '';
  FMysql.Db := 'test'; // Datenbank auf dem Server
  FMysql.UseNamedPipe := false;
  FMysql.UseSSL := false;
  FMysql.Compress := true;
  FMysql.TrySockets := false;
  if FMysql.Connect then
    ShowMessage('Verbindung aufgebaut')
  else
    ShowMessage('Fehler beim Verbinden: '+FMysql.LastError);
end;
Jetzt ist die Frage, was ich wo eintragen muss :gruebel:
Was muss ich bei FMysql.Host eintragen? Die URL des Webhosters? Oder die Domain meiner Website? Oder was ganz anderes? Denn irgendwo muss ich ihm ja angeben, wo die Datenbank liegt.
Ich denke mal, bei FMysql.user muss "web12" und bei password "abcdefg" rein, oder?

Ich hoffe, ihr könnt mir helfen.

PS: Der Anbieter schreibt übrigens, dass externer Datenbank-Zugriff erlaubt ist und möglich sei

jaenicke 10. Apr 2009 01:31

Re: MySQL direct - aber wie?
 
Der Hostname ist normalerweise deine Domain, in diesem Fall also vermutlich mustermann.srv27.ffm.w-united.de. Die MySQL-Zugangsdaten findest du in der Confixx-Oberfläche, dort musst du ja auch eine Datenbank erst anlegen.

mkinzler 10. Apr 2009 11:37

Re: MySQL direct - aber wie?
 
Zudem würde ich prüfen, ob der Provider einen Zugriff von aussen auch erlaubt.

Luckie 10. Apr 2009 11:40

Re: MySQL direct - aber wie?
 
Zitat:

Zitat von mkinzler
Zudem würde ich prüfen, ob der Provider einen Zugriff von aussen auch erlaubt.

Denn genau dies gestatten nicht alle.

DeddyH 10. Apr 2009 12:22

Re: MySQL direct - aber wie?
 
Steht aber schon im Ausgangspost.
Zitat:

PS: Der Anbieter schreibt übrigens, dass externer Datenbank-Zugriff erlaubt ist und möglich sei

Exterior 10. Apr 2009 15:27

Re: MySQL direct - aber wie?
 
Also der Anbieter meint, dass der externe Datenbank-Zugriff erlaubt und auch aktiviert ist.

Aber er bringt mir leider einen Fehler :( Wenn ich "mustermann.srv27.ffm.w-united.de" als Host nehme, bringt er mir "Fehler beim Verbinden: Can't connect to MySQL Server on 'mustermann.srv27.ffm.w-united.de' (0)"

Und wenn ich ich 'http://mustermann.srv27.ffm.w-united.de' nehme, bringt er mir "Fehler beim Verbinden: Unknown MySQL Server Host 'http://mustermann.srv27.ffm.w-united.de' (11004)"

Und ich habe mal noch probiert, beim Host "www.webhost-united.de" (Webhoster) anzugeben, aber da bringt er mir dann "Fehler beim verbinden: Access denied for user 'web12'@'p4FD75302.dip.t-dialin.net' (using password: YES)" :(

Hat irgendjemand eine Idee?

Oder könnte ich vielleicht mal das kleine Test-Programm anhängen und jemandem die entsprechenden Daten geben und mir geht jemand ein wenig zur Hand? :(
Weil ich hier gerade echt nicht weiter weiß :(

fkerber 10. Apr 2009 15:30

Re: MySQL direct - aber wie?
 
Hi!

Kann es sein, dass die Datenbank auf einem anderen Server liegt? So ist das z.B. bei 1&1 meistens.
Die Infos dazu solltest du aber in deiner Konfigurationspberfläche finden...



Ciao, Frederic

Exterior 10. Apr 2009 16:11

Re: MySQL direct - aber wie?
 
Ich gebe zu, jetzt bin ich verwirrt :?

Auf MySQL-Datenbanken wird ja standardmäßig über Port 3306 zugegriffen.
War mir nun nicht sicher, ob der Port nur auf dem Server freigegeben sein muss oder auch lokal beim Anwender, wisst ihr da was?

Habe auf jeden Fall mal probeweise in der Kaspersky-Firewall und im Router den Port 3306 freigegeben und siehe da: es funktionierte :-D
Wollte dann mal prüfen, wo es denn hängen bleibt und habe den Regel-Eintrag in Kaspersky wieder rausgenommen, ging immer noch.
Aber danach habe ich auch die Port-Regel im Router wieder gelöscht und es geht immer noch :gruebel:

Ich habe quasi den Ausgangszustand wiederhergestellt, mit dem feinen Unterschied, dass es jetzt funktioniert :wiejetzt:

Aber das kann doch an sich nicht sein, oder? Hat jemand eine Erklärung dafür?

Denn es ist zwar gut, dass es jetzt klappt, aber die Software soll später an einige andere Leute weitergegeben werden und ich habe ja jetzt keine Ahnung, ob es dann bei denen auch klappen wird :wall:

Und vor allem ist es doof, wenn jeder neue Nutzer den Port freigeben müsste. Weil es auch gut sein kann, dass die Software mal an einen Mausschupser kommt, der nicht weiß, wo er den Port öffnen kann.

Wisst ihr, wie ich den Port aus der Software heraus öffnen kann? Ist das überhaupt möglich? Bzw. muss der Port 3306 für diesen Zugriff überhaupt lokal geöffnet werden? Denn jetzt sind alle Port-Regeln dafür wieder raus und es geht immer noch :|

Bah, macht mich das schon wieder fertig -.-'

DeddyH 10. Apr 2009 16:15

Re: MySQL direct - aber wie?
 
Wenn jedes Programm mal eben nach Lust und Laune Ports öffnen könnte, bräuchte man ja auch keine Firewall mehr. Du könntest aber im Falle, dass keine Verbindung zustande kommt, eine entsprechende Meldung ausgeben.

fkerber 10. Apr 2009 16:16

Re: MySQL direct - aber wie?
 
Hi!

Port 3306 ist doch der, auf dem der Server "lauscht" oder?
Also müsste der serverseitig freigegeben sein - sonst geht da gar nix.
Aber lokal müsstest du den imho nicht freigeben.


Ciao, Frederic


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:50 Uhr.
Seite 1 von 3  1 23      

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