在Linux下使用perl透過unixODBC連線SQLServer2000(轉)
摘要:MS從來沒有提供過SQLServer for Linux,所以大家也不要去嘗試在Linux系統安裝SQLServer,但是可以透過ODBC連線Windows系統的SQLServer資料庫;
一、關於測試環境及Linux連線SQL Server 的說明;
測試環境:
gcc 3.3.3 , kernel 2.6.5-1 , glibc 2.3.3-27 , perl 5.8.3
關於SQL Server說明:
MS從來沒有提供過SQLServer for Linux,所以大家也不要去嘗試在Linux系統安裝SQLServer,但是可以透過ODBC連線Windows系統的SQLServer資料庫;
Windows Server 2003使用者注意:
在Windows Server 2003系統上安裝的SQLServer是不會開啟1433埠的,所以請Windows2003使用者在安裝完SQLServer之後一定裝上SQLServer SP3布丁
二、下載相關軟體 unixODBC、freetds和DBD-ODBC
首先需要下載3個檔案:
Linux系統的ODBC
unixODBC-2.2.8.tar.gz ( )
連線SQLServer或Sybase的驅動
freetds-0.62.4.tar.gz ( )
perl的ODBC模組
DBD-ODBC-1.12.tar.gz ( )
把下載到的三個檔案放到同一個目錄
三、安裝和配置;
1、安裝unixODBC
# tar vxzf unixODBC-2.2.8.tar.gz# cd unixODBC-2.2.8# ./configure --prefix=/usr/local/unixODBC# make# make install
2、安裝freetds
# tar vxzf freetds-0.62.4.tar.gz# cd freetds-0.62.4# ./configure --prefix=/usr/local/freetds --with-unixodbc=/usr/local/unixODBC --with-tdsver=8.0# make# make install
3、安裝DBD-ODBC
在安裝之前要先設定一下環境變數
# export ODBCHOME=/usr/local/unixODBC
之後開始編譯安裝
# tar vxzf DBD-ODBC-1.12.tar.gz# cd DBD-ODBC-1.12# perl Makefile.PL# make# make install
所有的軟體到現在都安裝完成了,接下來就是配置了
4、配置freetds
# cd /usr/local/freetds# vi etc/freetds.conf
修改以下的一段,並把;去掉
改好之後的內容:
[MyServer2k]host=192.168.0.32port=1433tds version=8.0
其中的[MyServer2k]代表在客戶端使用的伺服器名稱,host代表SQLServer伺服器的IP地址,port代表埠,測試連線;
# bin/tsql -S MyServer2k -H 192.168.0.32 -p 1433 -U sa -P password1> use gameDB2> go1> select count(*) from t_ip41> quit
一切都很順利
現在來說明以下這些引數的作用,-S MyServer2k是在freetds.conf中定義好的,-H 192.168.0.32伺服器IP地址,和freetds.conf中的一致,如果使用了-S引數,這個引數可以不用,-p 1433用來指定埠是1433 ,-U sa用來指定連線資料庫的使用者名稱,-P password用來指定連線資料庫的密碼。
5、配置unixODBC
# cd /usr/local/unixODBC
向ODBC新增SQLServer驅動
# vi etc/odbcinst.ini
寫入如下內容:
[TDS] ;驅動名稱Description = MS-SQLServer ;描述Driver = /usr/local/freetds/lib/libtdsodbc.so ;驅動程式Setup = /usr/local/freetds/lib/libtds.so ;不要問我,我也不知道這是什麼FileUsage = 1
儲存退出
新增DSN
# vi etc/odbc.ini
寫入如下內容
[123] ;DSN名稱Driver = TDS ;ODBC驅動Server = 192.168.0.32 ;伺服器IPDatabase = gameDB ;要使用的資料庫Port = 1433 ;埠Socket =Option =Stmt =
儲存並退出,測試ODBC的連線
# bin/isql -v 123 sa passwordSQL> select count(*) from t_ip+----------+| |+----------+| 4 |+----------+SQL> quit
OK,測試透過,開始測試perl能否正確使用ODBC
在使用perl連線ODBC之前要做些準備工作
把ODBC的共享庫都複製到/usr/lib目錄
# cp /usr/local/unixODBC/lib/libodbc.* /usr/lib
6、perl指令碼測試能否成功;
# vi test.pl
內容如下
#!/usr/bin/perluse DBI;$dbh=DBI->connect('dbi:ODBC:123','sa','password');my $sth=$dbh->prepare("select * from t_ip";$sth->execute();while (@data=$sth->fetchrow_array()){print "$data[0] $data[1] $data[2] ";}
儲存退出
# perl test.pl
如果可以看到資料庫中的記錄,就說明可以正常使用ODBC perl了。
既然已經可以實現perl透過ODBC來連線SQLServer了,那麼同樣可以使用PHP+ODBC+SQLServer,具體方法請查詢PHP官方網站。
四、關於本文
寫完,收工,今天晚上可以不用熬夜了,開心
PS:M$真是害死我了。
五、相關文件
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-940472/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux下如何通過命令連線wifiLinuxWiFi
- 今天在linux上用perl連線sqlserver,執行儲存過程,獲取一個結果集LinuxSQLServer儲存過程
- 如何透過DBeaver 連線 TDengine?
- 使用 Java 客戶端透過 HTTPS 連線到 EasysearchJava客戶端HTTP
- adb透過wifi連線手機WiFi
- mac透過網線連線主機(fnOS)Mac
- perl程式透過gccli命令列工具連線GBase南大通用分析型資料庫叢集的方法GC命令列資料庫
- js 透過連結下載檔案JS
- linux下mysql安裝、授權、建立使用者、連線navicat、連線entityLinuxMySql
- 樹莓派透過nmcli命令連線WIFI樹莓派WiFi
- SSH 透過跳板機連線目標機
- PLC透過Modbus轉Profinet閘道器連線壓力計的配置方法
- Linux 系統如何透過 netstat 命令檢視連線數判斷攻擊Linux
- Linux 命令列下連線WiFiLinux命令列WiFi
- 如何透過有效的線索管理提高使用者轉化率
- 如何設定透過TeamViewer連線群暉NASView
- gRPC(五)進階:透過TLS建立安全連線RPCTLS
- 如何透過連線資料庫的方式對線下應用進行線上擴充套件資料庫套件
- Linux環境下透過docker安裝mysqlLinuxDockerMySql
- linux 下 github ssh 無法連線LinuxGithub
- root使用者無法通過ssh連線Linux系統Linux
- 變頻器透過Modbus轉Profinet閘道器連線電機與PLC通訊
- Oracle 19c透過SCAN連線ORA-12520Oracle
- 在Windows中,使用批處理(.bat)檔案可以透過呼叫命令來實現自動撥號連線。以下是透過批處理檔案實現PPPoE(撥號)連線的基本步驟:WindowsBAT
- 006 透過連結串列學Rust之使用OptionRust
- Python 下 Django 透過 SSHTunnel 連線 ECS 上未開通外網地址 RDS 的方案PythonDjango
- 使用jenkins連線linux部署jar包JenkinsLinuxJAR
- 為什麼使用finalshell連線linux去使用?Linux
- 釘釘如何透過AppLink快速連線倉儲系統APP
- C#/C++ 透過ODBC連線OceanBase Oracle租戶C#C++Oracle
- 透過RestHighLevelClient相容模式連線elasticsearch8.x(支援https)RESTclient模式ElasticsearchHTTP
- OceanBase學習之路6|透過 Obclient 連線 OceanBase 租戶client
- 使用perl cpan
- 小白Windows下透過Ollama部署使用本地模型Windows模型
- win10 透過登出使用者的方式 來斷開遠端連線Win10
- 015 透過連結串列學習Rust之使用ArcRust
- Linux 管理工具之Xmanger(3) Xmanger 5 在Windows 下連線CentOS 5.10LinuxWindowsCentOS
- UltraEdit下ftp配置,UE遠端連線linuxFTPLinux
- pycharm透過ssh連線伺服器並上傳專案PyCharm伺服器