Entwickler-Ecke

Datenbanken - Acces denied???


Chris Maslowski - Fr 06.01.06 15:28
Titel: Acces denied???
Hallo,
da ich ja erst vor kurzem einen Thread hier geschrieben habe ist es mir ein bissl peinlich noch mal zu Fragen :oops:
Ich habe es endlich Geschaft den Datenbank quatsch in Delphi 7 PE einzubauen mittels MySQL Direct. Doch das Verbinden klappt nicht so ganz. Vielleicht könnte sich mal jemand den Quelltext angucken:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, umysqlvio, uMysqlCT, uMysqlClient, uMysqlHelpers;
  {$I mysqlinc.inc}

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
  FMysql: TMysqlClient;   //Für den Datenbankzugriff
  FResult: TMysqlResult;  //Für die Statusabfrage und so
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  FMysql := TMysqlClient.create; //FMysql wird hier erzeugt

  // Hier wird die Verbindung zur DB aufgebaut.
  FMysql.Host := 'http://www.web380.rionic.net';
  FMysql.user :='web380';
  FMysql.password := '';          //Die Zugangsdaten sind hier rausgebaut
                                  //um sie vor Missbrauch zu schützen
                                  //sie sind 100% Richtig
  FMysql.UnixSocket := '';
  FMysql.Db := 'usr_web380_3';
  FMysql.UseNamedPipe := false;   //Brauch ich das überhaupt?
  FMysql.UseSSL := false;         //oder das?
  FMysql.Compress := true;        //und was is hirmit?
  FMysql.TrySockets := false;     //und hiermit, das leuchtet mir alles net ein!
  if FMysql.Connect then
    ShowMessage('Verbindung aufgebaut')
  else
    ShowMessage('Fehler beim Verbinden: '+FMysql.LastError);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  FMysql.Free;
  if FResult<>nil then
    FResult.free;
  //Fmysql wird hier beendet sobald das Programm geschlossen wird.
end;

end.


Bei mir wird immer Accesdenied angezeigt obwohl die Zugangsdaten 100%tig richtig sind!


fränk0815 - Fr 06.01.06 15:37

Der Provider erlaubt offensichtlich keinen Datenbankzugriff von aussen.

Ausserdem solltest du wenn es geht den Port für Mysql mit angeben:

FMsql.port: 3306;


stifflersmom - Fr 06.01.06 16:18

Wenn Dein Provider ein Login über SSH erlaubt,
könntest Du dich mit http://www.chiark.greenend.org.uk/~sgtatham/putty/
auf Deinem Server einloggen, und mit einem Tunnel in Putty,
Dich doch mit Deinem My-sql Server verbinden, in dem Du in Deinem
Programm nicht mehr die Adresse Deines Servers benutzt,
sondern die von Putty, also localhost.

Moin


Chris Maslowski - Sa 07.01.06 11:56

user profile iconfränk0815 hat folgendes geschrieben:
Der Provider erlaubt offensichtlich keinen Datenbankzugriff von aussen.


Jo genau daran hat's gelegen. Der Hoster hat den Zugriff von außen als Sicherheitsmaßnahme gesperrt. Jetzt klappt alles!