2011-12-07 30 views
0

我想使用odbc連接一些erlang代碼到mysql服務器。我該如何讓erlang連接mysql?

我已經用odbc啓動了odbc管理器:start()。

但我只是不能得到連接調用工作,

我連接調用看起來是這樣的:

odbc:connect("server=localhost;port=3306;Uid=root",[]).

我一起工作的唯一事情是錯誤:

{error,"No SQL-driver information available. Connection to database failed."}

如果有人能幫助我,我將非常感激。

/馬丁

回答

1

我聽說過@dizzyd的erlang-mysql-driver好東西。

+1

我正在考慮這是一個很好的答案,驅動程序開箱即用,非常直觀。 –

1

你不要在你的DSN配置一個驅動程序。 ODBC系統不知道使用哪個。試試這個:

odbc:connect("driver=MySQL;server=localhost;port=3306;Uid=root",[]). 
+0

它給出了同樣的錯誤。「{錯誤,」沒有SQL驅動程序信息可用。與數據庫連接失敗。「}我開始考慮如果它的'無法看到驅動程序庫'sorta錯誤MySql在我的Mac上以奇怪的方式安裝了它自己... –

1

我聽說存在很好的非odbc驅動程序的MySQL(但沒有使用它,因爲有其他數據庫)。我強烈建議您使用它,因爲來自erlang分發的ODBC應用程序有許多不可用的功能和不良的文檔。您可以在這裏閱讀我的問題,它主要與odbc驅動程序有關。

1

我認爲在DSN中配置驅動程序有一些問題。

試試這個,

在您的odbc.ini文件是在/ etc目錄

寫這個下面的配置

[myodbc1] 
Driver  = /usr/lib/odbc/libmyodbc.so 
Description = MySQL ODBC 2.50 Driver DSN 
Server  = localhost 
Port   = 
User   = <Mysql username> 
Password  = <Mysql password> 
Database  = <database name> 
Option  = 3 
Socket  = 

並在代碼中編寫以下

Connecting_Str="DSN=myodbc1" 
odbc:connect(Connecting_Str,[]) 

並告訴你得到什麼。