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

yizhihongxing

当使用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日

相关文章

  • 万能密码的SQL注入漏洞其PHP环境搭建及防御手段

    当网站应用程序开发者没有使用正确的输入验证操作和安全措施时,SQL注入漏洞可以发生。恶意攻击者可以使用在输入字段中插入的SQL代码来操作正在运行的网站的数据库。此漏洞可以允许攻击者以管理员身份执行命令、修改/删除数据和窃取数据。以下是建立PHP环境以及防止“万能密码的SQL注入漏洞”的完整攻略: PHP环境的搭建 安装PHP环境 在Linux中,可以使用ap…

    database 2023年5月21日
    00
  • mysql 计算函数详情

    当使用 MySQL 编写查询语句时,可能需要使用一些计算函数来对数据进行处理。MySQL 提供了许多计算函数,包括数学函数、字符函数、日期函数等等。本文将对 MySQL 的计算函数进行详细讲解。 数学函数 ABS ABS() 函数用于返回一个数的绝对值。 示例,返回 -10 和 10 的绝对值: SELECT ABS(-10); SELECT ABS(10)…

    database 2023年5月22日
    00
  • MongoDB性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划

    以下是MongoDB性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划的完整攻略: 创建索引 为MongoDB集合中的字段创建索引可以大幅提升查询的效率。创建索引的方法有两种,一种是使用命令行操作,另一种是在程序中使用相关的API。下面以命令行操作为例,说明如何创建索引: db.collection.createIndex({"…

    database 2023年5月22日
    00
  • 敏捷框架和极限编程的区别

    敏捷框架和极限编程都是敏捷开发方法中的一种,它们有很多相似之处,但也有一些明显的区别。 敏捷框架 敏捷框架是一个大型的,完整的敏捷方法,它包含了很多个不同的过程和实践。例如Scrum、Kanban、XP等,在敏捷框架中,每个团队都可以选择最适合自己的方法,不同的方法可以有不同的实践,但都遵循了敏捷的原则和价值观,主要体现在以下几个方面: 持续交付 敏捷方法强…

    database 2023年3月27日
    00
  • Oracle 与 SQL Server的区别

    Oracle和SQL Server都是目前最流行的关系型数据库管理系统,它们在处理数据、数据存储、性能优化等方面具有很多相似之处,但也有很多明显的区别。以下是Oracle和SQL Server的区别的详细讲解。 1. 数据库管理系统 Oracle和SQL Server都是关系型数据库管理系统(RDBMS),但它们的结构和架构方式略有不同。Oracle数据库是…

    database 2023年3月27日
    00
  • 安装SQL server 提示重新启动计算机失败怎么解决?

    安装SQL Server时出现重新启动计算机失败的问题,这通常是由于以下原因之一所致: 已经打开了另一个程序或服务,正在使用文件。 某些Windows更新在安装过程中需要重新启动系统,但它们可能会在后台安装,而没有向用户显示通知。 系统出现故障,因此需要重新启动。 以下是解决这个问题的一些方法: 方法一:关闭所有与SQL Server相关的进程 在安装SQL…

    database 2023年5月21日
    00
  • CentOS7系统搭建LAMP及更新PHP版本操作详解

    CentOS7系统搭建LAMP及更新PHP版本操作详解 介绍 本文将介绍如何在CentOS7系统上搭建LAMP环境以及更新PHP版本的操作步骤。LAMP环境是指在Linux系统上搭建了Apache、MySQL和PHP服务器。本文将分别介绍如何安装和配置这些软件,并给出相应示例说明。 步骤 安装Apache服务器 首先,更新yum包管理器: sudo yum …

    database 2023年5月22日
    00
  • 2022最新版MySQL 8.0.30 安装及配置教程(小白入门)

    2022最新版MySQL 8.0.30 安装及配置教程(小白入门) MySQL是一种流行的关系型数据库管理系统,可以存储和检索大量的数据。下面是一份MySQL 8.0.30的安装及配置教程,适用于入门级使用者。 步骤一:下载MySQL 8.0.30 首先需要从MySQL官方网站(https://dev.mysql.com/downloads/mysql/)下…

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