2012-07-27 24 views
3

我需要使用perl(12.2)連接到mssql 2008數據庫,並在CentOS上使用freetds 0.91,並且可以通過在數據庫。但是,我需要切換到一個域用戶,我一直無法弄清楚我需要做些什麼來實現它。這看起來是對數據庫的安裝是否正確,這裏是我的連接字符串:無法連接使用perl在Linux上的Sybase dbi到使用域用戶的mssql 2008

my $dsn = [ 
    "DBI:Sybase:database=adx;server<server_name>", 
    '<DOMAIN>\\<user>', 
    '<password>', 
    { 
     PrintError => 0, 
     RaiseError => 0, 
     AutoCommit => 0 
    } 
]; 

以下是錯誤消息:

database connection failed for DBI:Sybase:database=<db_name>;server=<server_name> 
<DOMAIN>\\<user> : OpenClient message: LAYER = (0) ORIGIN = (0) SEVERITY = (78) NUMBER = (34) 
Server <server_name>, database 
Message String: Adaptive Server connection failed 

相信TDS錯誤(LAYER = (0) ORIGIN = (0) SEVERITY = (78) NUMBER = (34))是表示登錄失敗,但我確定密碼是正確的,並且直接在mssql客戶端上嘗試過。任何人得到這個工作?

+0

你試過它硬編碼? :$ dbh = DBI-> connect(「dbi:Sybase:server = BILLING」,「meuser」,「mypassw」); – 2012-07-27 23:35:41

+0

爲什麼要使用Sybase連接到mssqsl。有一個類:: DBI :: MSSQL – stark 2012-07-28 03:07:24

+0

我試過硬編碼的語法。不工作。並且DBI :: MSSQL需要ODBC,因此需要我安裝和配置unixODBC,而且我無法在最後一次嘗試時使它工作。我已經使用常規mssql數據庫帳戶將DBI :: Sybase連接到mssql。 – 2012-07-30 18:13:04

回答

2

我發現從Linux連接到SQL服務器(DBD :: ODBC)的唯一成功方法是使用ODBC,SyBase模塊應該與Sybase的實例一起使用,而不能與SQL Server一起使用...

應該看起來像下面的ODBC使用連接字符串:

"DBI:ODBC:driver={SQL Server};Server=192.168.1.1,1433;database=db_name"; 
+1

mssql基於Sybase,我用freetds 0.91使用DBI :: Sybase。它適用於一些常規的mssql數據庫帳戶,但我還沒有找到如何使它與一個域帳戶一起工作。 – 2012-07-30 18:14:33

+0

是的,但是我認爲使用ODBC會更好,特別是在這種情況下... – aleroot 2012-07-30 19:43:58

相關問題