当使用PHP或Python等编程语言连接到Microsoft SQL Server时,需要使用数据库驱动程序来实现连接。freetds是一款数据库驱动管理器,可以用于连接Microsoft SQL Server、Sybase等数据库。
freetds简介
freetds是一个免费的开源软件,它的作用是提供一个自由、开放的DB-Library/CT-Library与ODBC兼容的接口,同时为开发者提供数据通信接口,允许开发者连接到多个数据库,其中包括Microsoft SQL Server、Sybase及其他通过这些协议进行通信的任何数据库。
使用freetds连接Microsoft SQL Server,可以支持IBM-PC兼容机器上的一系列C编译器和应用程序编程接口(API)。
freetds的安装
在Linux上安装
在Ubuntu下,可以使用以下命令安装:
sudo apt-get install freetds-bin
sudo apt-get install freetds-dev
对于其他Linux发行版,可以使用预编译好的程序包,也可以下载最新版本的源码自行编译安装。
在macOS上安装
在macOS上,可以使用brew命令进行安装:
brew install freetds
安装完成后,可以使用以下命令来查看版本号:
tsql -C
freetds的配置
freetds的配置文件位于/etc/freetds/freetds.conf
,可以使用编辑器打开进行编辑。
配置freetds.conf
以下是一个典型的freetds.conf文件示例:
[global]
# TDS protocol version
tds version = 7.4
# Whether to use a SPN with the hostname during Kerberos SQL Server authentication.
use spn = yes
[myserver]
host = myserver.com
port = 1433
tds version = 7.4
client charset = UTF-8
可以设置global属性和各个server属性,其中global属性表示全局的设置,server属性表示单个数据库服务器的设置。
配置odbc.ini
除了通过freetds.conf配置外,还可以使用odbc.ini文件进行配置,配置文件位于/etc/odbc.ini
。
例如,可以在odbc.ini文件中添加以下内容:
[MyDSN]
Driver = /usr/lib64/libtdsodbc.so #ODBC driber,请按需配置
Description = My SQL Server
Trace = Yes
Servername = myserver
Database = mydb
freetds的使用介绍
连接命令行工具
使用命令行工具可以进行连接并执行SQL语句。
tsql -S myserver -U username -P password
-S选项指定数据库服务器的名称,-U和-P分别指定用户名和密码。
连接成功后,可以输入SQL语句进行查询,比如:
SELECT * FROM mytable
GO
使用PHP连接Microsoft SQL Server
使用PHP可以使用freetds作为数据库驱动程序来连接Microsoft SQL Server。
<?php
$server = 'myserver';
$port = '1433';
$username = 'username';
$password = 'password';
$database = 'mydb';
try {
$conn = new PDO("dblib:host=$server:$port;dbname=$database", $username, $password);
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
在上述代码中,使用PDO连接数据库,其中dblib指定数据库类型为Microsoft SQL Server,host指定数据库服务器名称和端口号,dbname指定数据库名称,$username和$password分别指定用户名和密码。
使用Python连接Microsoft SQL Server
使用Python可以使用freetds作为数据库驱动程序来连接Microsoft SQL Server。
import pyodbc
server = 'myserver'
database = 'mydb'
username = 'username'
password = 'password'
cnxn = pyodbc.connect('DRIVER={FreeTDS};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
cursor.execute("SELECT * FROM mytable")
row = cursor.fetchone()
while row:
print(row)
row = cursor.fetchone()
在上述代码中,使用pyodbc库连接数据库,指定数据库类型为FreeTDS,使用SERVER、DATABASE、UID和PWD等参数指定数据库连接的相关信息,执行SQL语句后逐行打印结果。
示例
示例一
在Ubuntu 20.04下,使用freetds连接Microsoft SQL Server的具体步骤如下:
- 打开终端,使用以下命令安装freetds:
sudo apt-get install freetds-bin
安装完成后,可以使用以下命令来查看版本号:
tsql -C
- 编辑freetds.conf文件:
sudo nano /etc/freetds/freetds.conf
按照上述配置例子修改。
- 编辑odbc.ini文件:
sudo nano /etc/odbc.ini
按照上述配置例子修改。
- 编辑odbcinst.ini文件:
sudo nano /etc/odbcinst.ini
添加以下内容:
[FreeTDS]
Description=FreeTDS Driver
Driver=/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup=/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
CPTimeout=10
CPReuse=1
- 使用以下命令连接数据库:
isql -v MyDSN username password
示例二
使用PHP连接Microsoft SQL Server的具体步骤如下:
- 安装freetds驱动:
sudo apt-get install freetds-bin
sudo apt-get install freetds-dev
- 安装pdo_sqlsrv扩展:
sudo pecl install pdo_sqlsrv
- 激活pdo_sqlsrv扩展:
sudo echo "extension=pdo_sqlsrv.so" > /etc/php/7.4/mods-available/pdo_sqlsrv.ini
sudo ln -s /etc/php/7.4/mods-available/pdo_sqlsrv.ini /etc/php/7.4/apache2/conf.d/20-pdo_sqlsrv.ini
sudo ln -s /etc/php/7.4/mods-available/pdo_sqlsrv.ini /etc/php/7.4/cli/conf.d/20-pdo_sqlsrv.ini
- 使用以下代码连接数据库:
$server = 'myserver';
$port = '1433';
$username = 'username';
$password = 'password';
$database = 'mydb';
try {
$conn = new PDO("sqlsrv:Server=$server,$port;Database=$database", $username, $password);
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
其中Server指定数据库服务器名称和端口号,Database指定数据库名称,$username和$password分别指定用户名和密码。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:freetds简介、安装、配置及使用介绍 - Python技术站