2012-05-08 74 views
1

我在這裏搜索,但沒有看到答案。無法連接到mySql數據庫只使用代碼

我使用的是Delphi2010。 我使用Devart Mydac連接到mySql數據庫。 當我設置服務器,數據庫,名稱,通過組件連接沒有問題。

當我試圖連接只是代碼它給出一個錯誤。

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

異常類EMySalExcption與信息「#28000訪問被拒絕的 user'[email protected] '(用過passworkd:YES)'。

爲什麼方法的代碼引起的錯誤?

感謝您的幫助和耐心。

+0

引用我不知道MyDAC,但恕我直言'@00.00 .00.00'在錯誤信息中表明你正試圖連接到IP爲00.00.00.00的主機,所以我會說你缺少提供者。 – TLama

+0

@Marco感謝您的意見。這是一個奇怪的問題。我嘗試了IP以及主機名。但不能用代碼工作。 – grant1842

+0

不是錯誤類* EMySqlException *?如果需要,請編輯。 – menjaraz

回答

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; 

有一兩件事我注意到的是它有一個禁止用於將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

+0

感謝您的評論。我試圖完全植入,但沒有去。這是weard我可以把信息放在對象檢查器,它的工作原理。 – grant1842

+0

沒問題,我希望有些東西可行,請讓我知道它是否有效 – Dennis

+0

如果'loginprompt'爲true,那麼會出現一個對話框,詢問用戶的用戶名和密碼;如果這些直接在連接中傳遞,那麼'loginprompt'應該設置爲false。該字段允許多個用戶連接到數據庫。 –