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日

相关文章

  • 如何在Python中查询SQLite数据库中的数据?

    以下是在Python中查询SQLite数据库中的数据的完整使用攻略。 查询SQLite数据库中的数据简介 在Python中,可以使用sqlite3模块连接SQLite数据库,并使用SELECT语句查询数据。查询结果可以使用游标对象的fetchone()、fetchall()和fetchmany()方法获取。 步骤1:导入模块 在Python中,使用sqlit…

    python 2023年5月12日
    00
  • MySQL的自增ID(主键) 用完了的解决方法

    MySQL中的自增ID(主键)是表中记录的唯一标识符,它有时也被称为自动增量。但在使用自增ID时,有可能遇到自增ID用完的情况,这种情况下,系统可能会出现无法添加新记录的情况。本文将详细介绍使用MySQL的自增ID(主键)时遇到用完的解决方法。 方法一:修改自增ID的起始值 MySQL中可通过修改自增ID的起始值来解决这个问题。使用以下命令即可修改表格中的某…

    database 2023年5月21日
    00
  • Spring boot 添加Redis管理

    1.application.properties spring.redis-dev.database=1 spring.redis.host=172.16.50.107spring.redis.port=6379spring.redis.password=spring.redis.testOnBorrow=false # 连接池最大连接数(使用负值表示没有限…

    Redis 2023年4月12日
    00
  • mysql8.0.23 linux(centos7)安装完整超详细教程

    下面是“mysql8.0.23 linux(centos7)安装完整超详细教程”的完整攻略: 准备工作 在开始安装之前,首先需要满足一些前置条件: 已经拥有一台安装好CentOS 7的服务器。 确保服务器拥有基本的系统管理权限,包括sudo权限和root用户访问权限。 确保服务器已经安装了依赖软件包,如gcc,openssl,cmake等。 下载MySQL …

    database 2023年5月22日
    00
  • mysql数据库修改添加Date格式列的方法

    下面就是mysql数据库修改添加Date格式列的方法的完整攻略: 1. 确定要修改添加Date格式列的表 在mysql数据库中,要修改添加Date格式列的表必须存在。因此,首先需要确定要操作的表名称。 2. 修改添加Date格式列的方法 2.1 修改已有表的Date格式列 如果要修改已有表的Date格式列,需要使用alter table语句,具体如下: AL…

    database 2023年5月22日
    00
  • SQL 合并记录

    SQL合并记录是指将一张表中的多条记录进行合并,使得其中的一些列的值合并成一条记录。常见的应用场景包括数据清洗、数据统计等。下面我将为你讲解SQL合并记录的完整攻略,包含两条实例。 1. 使用GROUP BY语句合并记录 GROUP BY语句是SQL合并记录的常用语句之一,它可以将一张表按照指定的列进行分组,并对每个分组中的记录进行统计。以下是一个例子。 假…

    database 2023年3月27日
    00
  • Ubuntu Server 16.04安装MySQL设置远程访问出现问题的完美解决方案(error:10061)

    Ubuntu Server 16.04安装MySQL设置远程访问出现问题的完美解决方案(error:10061) 问题现象描述 在Ubuntu Server 16.04上安装MySQL之后设置了远程访问,但是无法远程访问MySQL数据库,提示error:10061错误。 解决方案 1. 确认MySQL已启动并监听正确的端口 使用以下命令检查MySQL服务是否…

    database 2023年5月22日
    00
  • Python实现的爬取豆瓣电影信息功能案例

    Python实现的爬取豆瓣电影信息功能攻略 1. 前言 随着互联网技术的快速发展,我们可以通过Python编写爬虫程序轻松地获取各种网站上的数据。本次攻略将教你如何使用Python爬虫爬取豆瓣电影的信息。 2. 爬虫流程 2.1 网页分析 在进行爬虫之前,我们首先需要对目标网站的页面结构进行分析。我们以豆瓣电影首页(https://movie.douban.…

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