我有一臺Linux機器上安裝DBD::ODBC
,但是當我嘗試連接到SQL Server 2012中它顯示我使用下面的代碼問題,同時連接到使用Perl從Linux的
DBI connect('Driver={SQL Server};Server=<SERVER_NAME>;Database=<DATABASE_NAME>','<USER_NAME>',...) failed: [unixODBC][Driver Manager]Data source name not found, and no default driver specified (SQL-IM002) at script.pl line 47.
my $dsn = "dbi:ODBC:Driver={SQL Server};Server=$host;Database=$database";
my $dbh = DBI->connect($dsn, $user, $auth, { RaiseError => 1 });
/etc/odbcinst.ini
文件有如下條目:
# Example driver definitions
# Driver from the postgresql-odbc package
# Setup from the unixODBC package
[PostgreSQL]
Description = ODBC for PostgreSQL
Driver = /usr/lib/psqlodbc.so
Setup = /usr/lib/libodbcpsqlS.so
Driver64 = /usr/lib64/psqlodbc.so
Setup64 = /usr/lib64/libodbcpsqlS.so
FileUsage = 1
# Driver from the mysql-connector-odbc package
# Setup from the unixODBC package
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/libmyodbc5.so
Setup = /usr/lib/libodbcmyS.so
Driver64 = /usr/lib64/libmyodbc5.so
Setup64 = /usr/lib64/libodbcmyS.so
FileUsage = 1
而/etc/odbc.ini
文件爲空。
儘管我已經安裝了DBD::ODBC
模塊,但沒有SQL Driver的條目。我錯過了什麼嗎?爲什麼/etc/odbc.ini
文件是空的?還是必須手動輸入數據?
你是什麼意思*「沒有SQL Driver的條目」*?你在哪裏尋找這樣的入口? – Borodin 2014-11-06 13:32:54
首先讓你的odbc連接工作,然後擔心事情的Perl方面。 FreeTDS'tsql'和UnixODBC'isql'工具可以幫助解決這個問題。 – 2014-11-06 14:05:44
@Borodin:我認爲在.ini文件中應該有像[PostgreSQL]和[MySQL]這樣的SQL Server驅動程序的入門.....如果我錯了,請更正我的錯誤.... – spn 2014-11-07 04:07:03