相关疑难解决方法(0)

freeTDS没有使用它的配置

我决定使用FreeTDS驱动程序和unixODBC来管理基于LAMP的应用程序与远程MsSQL数据库之间的PDO连接.不幸的是,驱动程序似乎没有读取freetds.conf文件,也没有直接通过服务器的CLI设置或通过putenv()函数在php文件中指定的环境变量.

现在一些数据:

  1. 当我ping服务器时 - 没有数据包丢失.
  2. 当我在1433端口上telnet服务器时 - 建立连接
  3. 因为我使用命令

    TDSVER=7.0 tsql -H >IP< -p 1433 -U username
    
    Run Code Online (Sandbox Code Playgroud)

    系统提示我输入密码并建立连接.

  4. 没有命令前面的TDSVER - 连接失败并显示以下消息:

    Error 20017 (severity 9):
        Unexpected EOF from the server
        OS error 115, "Operation now in progress"
    Error 20002 (severity 9):
        Adaptive Server connection failed
    There was a problem connecting to the server
    
    Run Code Online (Sandbox Code Playgroud)
  5. tsql -C命令回声这样的输出:

    Compile-time settings (established with the "configure" script)
                           Version: freetds v0.91
            freetds.conf directory: /usr/local/etc
    MS db-lib source compatibility: yes
       Sybase binary compatibility: no
                     Thread safety: yes …
    Run Code Online (Sandbox Code Playgroud)

linux sql-server freetds ubuntu-10.04

18
推荐指数
3
解决办法
5万
查看次数

无法通过Yum Package Manager安装FreeTDS

我尝试按照下面文章中的说明进行操作,但它说:" 没有包装freetds可用. "

http://www.hosting.com/support/linux/installing-freetds-for-linux/

这是我的I/O:

[root@mydomain ~]# yum search freetds
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.web-ster.com
 * extras: mirror.beyondhosting.net
 * updates: mirrors.sonic.net
=============================== Matched: freetds ===============================
php-mssql.x86_64 : MSSQL database module for PHP
[root@mydomain ~]# yum install freetds
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.web-ster.com
 * extras: mirror.beyondhosting.net
 * updates: mirrors.sonic.net
Setting up Install Process
No package freetds available.
Error: Nothing to do
Run Code Online (Sandbox Code Playgroud)

我该如何安装freetds?我只是想连接到SQL Server!

编辑:

之后yum install …

linux centos yum freetds plesk

12
推荐指数
2
解决办法
3万
查看次数

php dblib,错误:SQLSTATE [HY000]未知主机名称(严重性2)

我正在使用mac计算机OSX 10.9.Freetds和unixODBC已经安装在我的计算机上并作为扩展添加到php,试图连接到远程MSSQL服务器.以下是我的连接测试:

<?php 
$dbh = new PDO('dblib:host=Hostname ;dbname=Dbname', 'user', 'pw'); 
if (!$dbh) {
    die('Something went wrong while connecting to MSSQL');
}
?>
Run Code Online (Sandbox Code Playgroud)

错误日志文件显示:

[error] [client 127.0.0.1] PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] Unknown host machine name (severity 2)
Run Code Online (Sandbox Code Playgroud)

可能是什么问题呢 ?如果我使用终端连接到同一个数据库,我的freetds和unixODBC似乎正常工作:

$ isql Hostname user pw 
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> 
Run Code Online (Sandbox Code Playgroud)

$ tsql -S Hostname  -U user
Password: 
locale is "en_US.UTF-8"
locale …
Run Code Online (Sandbox Code Playgroud)

php sql-server macos pdo freetds

7
推荐指数
1
解决办法
5968
查看次数

在php.ini文件中添加扩展条目后,sqlsrv驱动程序不会出现在WAMP服务器phphinfo()上

我想建立一个从PHP到SQL Server 2012的数据库连接.我在Windows机器(64位)上使用PHP 5.5.12设置了一个wamp服务器(64位),并且在我安装了SQL Server 2012的同一台机器上.

official_link中提取sqlsrv驱动程序

将提取的驱动程序php_sqlsrv_55_ts.dll复制extension = php_pdo_sqlsrv_55_ts.dllphp\ext文件夹,然后更改php.ini文件以包含扩展名

extension = php_sqlsrv_55_ts.dll; extension = php_pdo_sqlsrv_55_ts.dll;
Run Code Online (Sandbox Code Playgroud)

现在我试过了

<?php
  phpinfo();
 ?>
Run Code Online (Sandbox Code Playgroud)

我看到以下信息,其中没有任何SQL服务器信息.

在此输入图像描述

在此输入图像描述

似乎没有成功配置SQL Server连接.有人可以指导我在这里缺少的东西.

php pdo wampserver

6
推荐指数
1
解决办法
1万
查看次数

PHP使用SSL连接到MS SQL

我的意思是非常简单.我想通过安全连接从PHP脚本连接到外部MS SQL数据库.然而,这已经证明是有问题的,到目前为止,研究投入了三个小时,我感到很茫然.

客户端的平台是Ubuntu,这意味着我不能使用SQLSRV.安全连接已经过不同客户端的测试,工作正常.我目前正在使用PDO和DBlib连接到数据库,这也可以正常工作.

我无法找到任何强制安全连接的方法.我尝试了多个其他驱动程序,但无济于事.

我有什么选择?

编辑:我留下了以下FreeTDS日志......

config.c:543:   Got a match.
config.c:565:   host = 'XXXXXXXXXX'
config.c:595:   Found host entry XXXXXXXXXX.
config.c:599:   IP addr is XXXXXXXXXX.
config.c:565:   port = '1433'
config.c:565:   encryption = 'require'
config.c:565:   check certificate hostname = 'no'
config.c:629:   UNRECOGNIZED option 'check certificate hostname' ... ignoring.
config.c:565:   ca file = 'XXXXXXXXXX.pem'
config.c:629:   UNRECOGNIZED option 'ca file' ... ignoring.
Run Code Online (Sandbox Code Playgroud)

php sql ubuntu ssl

5
推荐指数
1
解决办法
2261
查看次数

SQLSTATE [01002] Adaptive Server连接失败(严重级9)

我有以下脚本连接到我的microsoft azure服务器.

<?php

try {
    $hostname = "secrets.database.windows.net";
    $dbname = "secrets";
    $username = "secrets";
    $pw = "secrets";
    $dbh = new PDO ("dblib:host=$hostname;dbname=$dbname","$username","$pw");
} catch (PDOException $e) {
    echo "Failed to get DB handle: " . $e->getMessage() . "\n";
    exit;
}

echo "Passed!";
Run Code Online (Sandbox Code Playgroud)

上面的脚本传递我的旧服务器,但从新服务器执行时给我以下错误消息.

SQLSTATE[01002] Adaptive Server connection failed (severity 9)
Run Code Online (Sandbox Code Playgroud)

我的新服务器PHP设置如下:

sudo apt-get install -y php5.6-fpm php5.6-ldap php5.6-curl php5.6-cli   php5.6-mcrypt php5.6-intl php5.6-json php5.6-pdo-dblib php5.6-mysqlnd php5.6-memcached php5.6-mbstring php5.6-imap php5.6-xml php5.6-sybase
Run Code Online (Sandbox Code Playgroud)

到目前为止我的检查:

1)两者都具有相同的面向公众的IP地址.

2)两者都具有相同的PHP PDO/ODBC设置.

$ php -i | grep PDO
DO …
Run Code Online (Sandbox Code Playgroud)

php sql-server ubuntu pdo azure

5
推荐指数
2
解决办法
3万
查看次数

标签 统计

php ×4

freetds ×3

pdo ×3

sql-server ×3

linux ×2

ubuntu ×2

azure ×1

centos ×1

macos ×1

plesk ×1

sql ×1

ssl ×1

ubuntu-10.04 ×1

wampserver ×1

yum ×1