You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu22.04下PHP PDO通过FreeTDS连接SQLServer2019所需包咨询

在Ubuntu 22.04通过FreeTDS实现PHP PDO访问SQL Server 2019

可行性说明

可以通过FreeTDS实现PHP PDO访问SQL Server 2019。FreeTDS是开源的TDS(Tabular Data Stream)协议实现,PHP的PDO_DBLIB驱动依赖FreeTDS,能够与SQL Server建立连接。

所需依赖包

不能仅安装FreeTDS,还需要安装PHP的pdo-dblib扩展包——这是PHP实现PDO连接DBLIB(依赖FreeTDS)的核心扩展。除你提到的php、php-cli、php-common外,需要安装的包包括:

  • freetds-common、freetds-bin:FreeTDS核心组件
  • php-pdo-dblib:对应PHP版本的PDO-DBLIB扩展(Ubuntu 22.04默认PHP为8.1,若使用其他版本需调整包名,如php7.4-pdo-dblib)

具体操作步骤

  1. 更新包列表并安装依赖

    sudo apt update
    sudo apt install freetds-common freetds-bin php-pdo-dblib
    

    若使用非默认PHP版本(如7.4),需先添加PHP源:

    sudo add-apt-repository ppa:ondrej/php
    sudo apt update
    sudo apt install php7.4-pdo-dblib
    
  2. 配置FreeTDS
    编辑FreeTDS主配置文件:

    sudo nano /etc/freetds/freetds.conf
    

    在文件末尾添加SQL Server的连接配置(替换占位符为实际信息):

    [MSSQL2019]
        host = 你的SQL Server IP或主机名
        port = 1433
        tds version = 7.4
        client charset = UTF-8
    

    保存退出后,测试FreeTDS连接是否正常:

    tsql -S MSSQL2019 -U 数据库用户名 -P 数据库密码
    

    若进入1>命令提示符,说明连接成功。

  3. PHP PDO连接测试
    创建测试脚本test_pdo.php:

    <?php
    try {
        $dsn = 'dblib:host=MSSQL2019;dbname=你的数据库名';
        $user = '数据库用户名';
        $pass = '数据库密码';
        $pdo = new PDO($dsn, $user, $pass);
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        echo "连接SQL Server成功!";
    } catch (PDOException $e) {
        die("连接失败: " . $e->getMessage());
    }
    ?>
    

    运行脚本验证:

    php test_pdo.php
    

注意事项

  • 确保SQL Server已开启远程连接,且服务器防火墙允许1433端口的TCP流量
  • TDS版本需匹配SQL Server版本:SQL Server 2019使用7.4是最佳选择
  • 若连接出现字符编码问题,可调整client charset为对应编码(如GBK)

内容的提问来源于stack exchange,提问作者Avery

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 13:47:21