freetds简介、安装、配置及使用介绍

当使用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的具体步骤如下:

  1. 打开终端,使用以下命令安装freetds:
sudo apt-get install freetds-bin

安装完成后,可以使用以下命令来查看版本号:

tsql -C
  1. 编辑freetds.conf文件:
sudo nano /etc/freetds/freetds.conf

按照上述配置例子修改。

  1. 编辑odbc.ini文件:
sudo nano /etc/odbc.ini

按照上述配置例子修改。

  1. 编辑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
  1. 使用以下命令连接数据库:
isql -v MyDSN username password

示例二

使用PHP连接Microsoft SQL Server的具体步骤如下:

  1. 安装freetds驱动:
sudo apt-get install freetds-bin
sudo apt-get install freetds-dev
  1. 安装pdo_sqlsrv扩展:
sudo pecl install pdo_sqlsrv
  1. 激活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
  1. 使用以下代码连接数据库:
$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技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • MySql数据库基础之子查询详解

    MySql数据库基础之子查询详解 什么是子查询 子查询(Subquery)也叫内部查询、嵌套查询,它指嵌套在其他 SQL 语句(例如 SELECT 语句)中的 SELECT 语句。子查询返回的结果会被用于外层查询,通常会用于 WHERE 或 HAVING 子句中。 子查询的语法 SELECT column1, column2, … FROM table_…

    database 2023年5月22日
    00
  • 读取纯真IP数据库的公用组件接口QQWry.NET

    读取纯真IP数据库的公用组件接口QQWry.NET是一个可以在 .NET 平台(C# 或者 VB)上读取纯真IP库的公共组件,支持各种内网、外网、Windows、Linux 等各种环境下的 IP 查询操作。 下面是详细的使用攻略: 1. 下载QQWry.NET组件 QQWry.NET组件可以从官网(https://www.nuget.org/packages…

    database 2023年5月22日
    00
  • sql 函数大全 比较常用的一些函数整理第1/2页

    首先,我们需要了解什么是SQL函数。在SQL中,函数是一些特殊的操作符,它们接受一些参数,执行特定的计算,并返回一个结果。SQL函数可以用于执行日期和时间处理、字符串操作、数学计算等一系列操作。本文将整理比较常用的SQL函数,让您更快更方便地查询、计算数据。 SQL 函数大全:比较常用的一些函数整理(第1/2页) 1. 字符串函数 常用的字符串函数包括: 1…

    database 2023年5月21日
    00
  • MySQL的事务特性概念梳理总结

    MySQL的事务特性概念梳理总结 MySQL是一种SQL关系型数据库管理系统,支持ACID事务特性。ACID是指:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。在MySQL中,对于事务的处理涉及到以下几个主要概念: 1. 数据库事务 数据库事务是指一组数据库操作组成的一个逻辑工作…

    database 2023年5月22日
    00
  • linux忘记mysql密码处理方法

    下面是“Linux忘记MySQL密码处理方法”的完整攻略: 1. 查看MySQL服务状态 首先,我们需要检查MySQL服务是否正在运行。可以运行以下命令: systemctl status mysql.service 如果MySQL服务正在运行,你应该能够看到以下类似的输出: ● mysql.service – MySQL Community Server …

    database 2023年5月22日
    00
  • Linux防火墙iptables入门教程

    下面是详细讲解Linux防火墙iptables入门教程的完整攻略。 1. 什么是iptables iptables是Linux系统下的一个网络安全工具,可以用来管理和配置网络数据包的流转。iptables可以实现诸如端口转发、包过滤、数据包深度检测、地址转换等功能,是保护Linux系统安全的重要工具。 2. iptables命令行基础 使用iptables需…

    database 2023年5月22日
    00
  • oracle存储过程创建表分区实例

    创建表分区可以提高数据处理效率和查询速度,并能够更好地保护数据安全性。下面是使用存储过程创建表分区的完整攻略: 一、创建存储过程 我们可以使用 PL/SQL 来创建存储过程。下面是一个创建分区表的存储过程示例: CREATE OR REPLACE PROCEDURE create_partition_table(table_name VARCHAR2, co…

    database 2023年5月21日
    00
  • 如何在Python中更新MySQL数据库中的数据?

    以下是在Python中更新MySQL数据库中的数据的完整使用攻略。 使用MySQL数据库的前提条件 在使用Python连接MySQL数据库之前,确保已经安装了MySQL数据库,并已经创建使用数据库和表。同时,还需要安装Python的驱动程序,例如mysql-connector-python。 步骤1:导入模块 在Python中使用mysql.connecto…

    python 2023年5月12日
    00
合作推广
合作推广
分享本页
返回顶部