1

ここで検索しましたが、答えが見つかりませんでした。

Delphi2010を使用しています。DevartMydacを使用してmySqlデータベースに接続しています。サーバー、データベース、名前、パスをコンポーネントに設定すると、問題なく接続されます。

しかし、コードだけで接続しようとすると、エラーが発生します。

begin
    MyConnection1.Server:='MyServer';
    MyConnection1.Database:='MyDatabase';
    MyConnection1.Username:='MyUserName';
    MyConnection1.Password:='MyPassword';
    MyConnection1.Connected:= True;
    MyQuery1.Active:= True;
end;   

メッセージ付きの例外クラスEMySalExcption"#28000ユーザー'username@00.00.00.00'のアクセスが拒否されました(passworkdを使用:YES)'。

コードメソッドがエラーを引き起こすのはなぜですか?

あなたの助けと忍耐に感謝します。

4

1 に答える 1

2

コメントしますが、まだ能力がないと思います。しかし、私はマルコに同意します。私はこの言語や製品の経験がありませんが、データベースはリモートマシンにあるのでしょうか。まず、サーバーをIPに設定して、それが機能するかどうかを確認してください。

私はこの構成をオンラインで見つけ、コアに到達するためにいくつかのものを削除しました

begin
  MyConnection1.LoginPrompt := false;
  MyConnection1.Username := 'test';
  MyConnection1.Password := 'test';
  MyConnection1.Database := 'test';
  MyConnection1.Server := '127.0.0.1';
  MyConnection1.Port := 3306;
  MyConnection1.Connect;
end;

私が気づいたことの1つは、LoginPromptが無効になっていることですが、そうでない場合は、ポートもあります。IPとポート番号を設定してみます。それが機能する場合は、ポート番号だけを設定してみてください。それでもうまくいかない場合は、ここで完全な実装を試してから、逆方向に取り出してサーバーをホスト名に戻します

begin
  MyConnection1.Pooling := true;
  MyConnection1.PoolingOptions.MinPoolSize := 1;
  MyConnection1.LoginPrompt := false;
  MyConnection1.Options.Charset := 'utf8';
  MyConnection1.Options.Direct := true;
  MyConnection1.Options.UseUnicode := true;
  MyConnection1.Username := 'test';
  MyConnection1.Password := 'test';
  MyConnection1.Database := 'test';
  MyConnection1.Server := '127.0.0.1';
  MyConnection1.Port := 3306;
  MyConnection1.Connect;
end;

http://forums.devart.com/viewtopic.php?t=12035から参照

于 2012-05-08T02:59:18.043 に答える