AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MySql Connection

Ein Thema von ghost007 · begonnen am 31. Jan 2010 · letzter Beitrag vom 2. Feb 2010
Antwort Antwort
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#1

MySql Connection

  Alt 31. Jan 2010, 12:05
Servus, ich hab heute versucht eine connection mit einem mysql server herzustellen. Hierfür verwende ich die mysqllib.dll, kekapselt durch eine mysql.pas

Mein code schaut wie folgt aus:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, mysql, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  _myCon: PMySQL; //unseren Verbindungsdeskriptor
  host, user, pass, db: PAnsiChar; //die Anmeldedaten
begin
  //wir werden uns als Root-Benutzer in localhost einloggen, ohne eine
  //bestimmte Datenbank auszuwählen
  host := 'XX.XXX.XX.XX';
  user := 'root';
  pass := '';
  db := '697_datenbank';

  //jetzt wird _myCon initialisiert
  _myCon := mysql_init(nil);
  if _myCon = nil then
  begin
    ShowMessage('Nicht genug freier Speicher, um Verbindungsdeskriptor zu initialisieren');
    Exit;
  end;

  //anschließend wird die Verbindung hergestellt
  if mysql_real_connect(_myCon, host, user, pass, db, 3306, nil, 0) = nil then //HIER
  begin
    ShowMessage('Die Verbindung konnte nicht hergestellt werden. Ursache: ' + mysql_error(_myCon));
    Exit;
  end;

  ShowMessage('Verbindung hergestellt');

  //zum Schluss wird die Verbindung wieder geschlossen
  mysql_close(_myCon);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  libmysql_fast_load(nil);
end;

end.
In der markierten zeile bleibt er immer hängen, was mach ich falsch ? Ich benutzte Delphi 2009, falls das irgendwas mit der zeichenencodierung zu tun hat.

MfG - Ghost007

[edit=mkinzler]Code-Tag durch Delphi-Tag ersetzt Mfg, mkinzler[/edit]
Angehängte Dateien
Dateityp: pas mysql_128.pas (126,2 KB, 27x aufgerufen)
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: MySql Connection

  Alt 31. Jan 2010, 12:10
Hi,

was heißt bleibt hängen? Geht's einfach nicht weiter? Kommt eine Fehlermeldung?

Edith: Wo liegt der Server? Hast Du exklusiven Zugriff auf diese Datenbank?
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#3

Re: MySql Connection

  Alt 31. Jan 2010, 12:16
Zitat von Die Muhkuh:
Hi,

was heißt bleibt hängen? Geht's einfach nicht weiter? Kommt eine Fehlermeldung?

Edith: Wo liegt der Server? Hast Du exklusiven Zugriff auf diese Datenbank?
Also, das programm freezt einfach. Und im weiteren verlauf kommt dann die im code festgelegte fehlermeldung "Die Verbindung konnte nicht hergestellt werden. Ursache: Can't connect to MySQL on 'XX.XXX.XX.XX' (10060)".

Der server gehört zu meinem webspace und liegt irgendwo im internet. Zugriff sollte ich von daher eigentlich schon exklusiven haben, so wie ich das sehe.

MfG - Ghost007
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
fishbrain

Registriert seit: 17. Sep 2007
Ort: Regensburg
132 Beiträge
 
#4

Re: MySql Connection

  Alt 31. Jan 2010, 12:27
Das kommt immer drauf an wer deinen Webspace hostet.
Bei manchen hast du Zugriff, bei anderen nicht. Frag mal nach bei deinem Hoster.
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#5

Re: MySql Connection

  Alt 31. Jan 2010, 12:29
Zitat von fishbrain:
Das kommt immer drauf an wer deinen Webspace hostet.
Bei manchen hast du Zugriff, bei anderen nicht. Frag mal nach bei deinem Hoster.
Naja, da die mysql db auf nem anderen server liegt, als meine php scripte, die auch dahin connecten, sollte es doch gehen oder?

MfG - Ghost007

//Edit: Okay, hab jetzt kurzerhand einfach einen lokalen server aufgesetzt. Jetzt meint er "Client does not support authentication protocol requested by server; consider upgrading mysql client.
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Exterior

Registriert seit: 24. Jun 2008
33 Beiträge
 
#6

Re: MySql Connection

  Alt 2. Feb 2010, 16:13
Nur wenige Hoster erlauben den externen DB-Zugriff von einem Privat-PC aus.

Dass deine MySQL-Datenbank und deine Scripte auf unterschiedlichen Servern liegen, hat damit nichts zu tun.
Damit du extern auf eine MySQL-DB zugreifen kannst, muss dein Hoster auf dem Server den Port 3306 öffnen. In deinem Fall (PHP-Scripte und DB auf getrennten Servern) wird dieser Port zwar offen sein, allerdings wird der Zugriff auf bestimmte statische IPs beschränkt sein, das heißt, dein Hoster hat einige IPs angegeben, die extern auf die DB zugreifen dürfen. Und deine vermutlich dynamische IP gehört da wohl nicht dazu.

Frag also einfach mal bei deinem Hoster nach, ob es möglich ist, von dynamischen IPs aus auf die MySQL-DB zu connecten, denn niemand sonst wird dir das sagen können. Und wenn nicht - dann hast du ein Problem, daran kann man dann wenig ändern.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: MySql Connection

  Alt 2. Feb 2010, 17:32
Ob du Zugriff auf deinen Server hast lässt sich ganz leicht mit telnet testen.
Eingabeaufforderung öffnen und dann:
Code:
C:\> telenet x.x.x.x 3306
Verbindungsaufbau zu x.x.x.x...Es konnte keine Verbindung mit dem Host hergestel
lt werden, auf Port 3306: Verbinden fehlgeschlagen
Also entweder erscheint diese Meldung "Verbinden fehlgeschlagen" oder es erscheint ein schwarzer Bildschirm, dann konnte die Verbindung hergestellt werden.
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:23 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