未找到指定的sqlserver

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了未找到指定的sqlserver相关的知识,希望对你有一定的参考价值。

如果出现未找到指定的SQL Server错误,可能是由于以下情况导致:1.连接字符串错误;2.SQL Server服务未启动或者不可用;3.SQL Server服务器名字与应用程序期待的不一致;4.FIREWALL未允许入站请求;5.权限未正确配置;6.连接失败的类型不一致;7.连接指定的数据库不存在;8.多个版本的SQL Server安装在同一台服务器上。 参考技术A 打开SQLServer配置管理器,看看里面的各项服务开了没有,以及SQLServer的网络配置中NamedPipes和TCP/IP协议启用了没有,没有的话,启用他们。要是还是不行,就看一下你的实例是否还在,是不是改动了实例的位置或者删除了。或者连接时验证有错,看看验证的方式所用的密码对不对 参考技术B 可能是sqlserver服务器没有启动,或者指定的服务器名称不正确,或者指定的端口号不正确,或者指定的IP地址不正确,或者指定的服务器不存在。 参考技术C 抱歉,你无法找到指定的SQL Server。建议你先检查你的计算机上是否已安装SQL Server,并确保你正在使用正确的版本。如果你尚未安装SQL Server,请参阅Microsoft网站上的安装文档,以便获得最新的安装信息。 参考技术D 请检查你的Sql Server数据库连接字符串是否正确,以及你的数据库是否存在,数据库服务器是否正常运行,用户名和密码是否正确,如果以上内容都正确,可以尝试重新安装数据库或者重启数据库服务器,以查看是否能够解决此问题。

sqlsrv_connect:未找到数据源名称且未指定默认驱动程序

【中文标题】sqlsrv_connect:未找到数据源名称且未指定默认驱动程序【英文标题】:sqlsrv_connect: Data source name not found and no default driver specified 【发布时间】:2013-09-06 13:11:52 【问题描述】:

我正在尝试从另一台机器 2 上的 PHP 代码连接到机器 1 上的 SQL Server 2008。 我使用的是 PHP 5.4.7、XAMPP 1.8.1,我已将 sql server dll 复制到 PHP/ext 文件夹并修改了 php.ini 文件。

现在,当我尝试连接到 SQL Server 时,出现以下错误。

Array ( [0] => Array ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => -49 [code] => -49 [2] => 此扩展需要 Microsoft SQL Server 2012 Native Client。访问以下 URL 以下载适用于 x86 的 Microsoft SQL Server 2012 Native Client ODBC 驱动程序:http://go.microsoft.com/fwlink/?LinkId=163712 [message] => 此扩展需要 Microsoft SQL Server 2012 Native Client。访问以下 URL 以下载 Microsoft SQL适用于 x86 的 Server 2012 Native Client ODBC 驱动程序:http://go.microsoft.com/fwlink/?LinkId=163712) [1] => Array ([0] => IM002 [SQLSTATE] => IM002 [1] => 0 [code] => 0 [2] => [ Microsoft][ODBC Driver Manager] 未找到数据源名称且未指定默认驱动程序 [消息] => [Microsoft][ODBC Driver Manager] 未找到数据源名称且未指定默认驱动程序))

我的PHP代码如下-

<?php
//phpinfo(); 
$server = "sql server\express,1433"; //serverName\instanceName, portNumber (default is 1433)
$uid="username";
$pwd="password";
$connectionInfo = array("UID" => $uid, "PWD" => $pwd, "Database"=>"rod_prd_tmart");
$conn = sqlsrv_connect( $server, $connectionInfo) ;

if($conn) 

   echo "Connection established.\n";
 else

   echo "Connection could not be established in this text.\n";
   die( print_r( sqlsrv_errors(), true));


sqlsrv_close( $conn);
?>

请帮我解决这个问题。谢谢。

【问题讨论】:

从go.microsoft.com/fwlink/?LinkId=163712下载并安装驱动并编辑php.ini。复制 sql server dll 不起作用 谢谢 Bansi。其实我已经下载并安装了 sql server 驱动程序并编辑了 php.ini 文件。 您是否也重新启动了您的网络服务器?你的代码看起来不错 提示:print_r() 输出有回车。如果您使用浏览器的“查看源代码”功能,就会看到它们。 我想你已经做到了,但你没有明确地说出来。您是否安装了 Microsoft SQL Server 2012 Native Client 【参考方案1】:

考虑使用PDO 以获得更大的灵活性:

//$pdo = new PDO("sqlsrv:Server=$hostname;Database=$dbname;", $username, $password);  // works with proper driver for PHP.
$pdo = new PDO("odbc:Driver=SQL Server;Server=$hostname;Database=$dbname;", $username, $password);  // works with proper driver for ODBC and PHP ODBC.

由于奇怪的编译器版本不兼容,我无法让第一行工作,但在安装 Microsoft ODBC Driver 11 for SQL Server 后第二行工作正常

根据php.ini,PHP 5.3.0 版具有内置的 ODBC 支持,但这里仍然列出了一个活动的extension=php_pdo_odbc.dll

【讨论】:

以上是关于未找到指定的sqlserver的主要内容,如果未能解决你的问题,请参考以下文章

SqlServerSqlServer编程语言T-SQL的游标使用

SqlServerSqlServer编程语言T-SQL的简介及基本用法

PLC200,不知道为啥老是 提示未找到指定的访问点,请大神赐教

未找到指定的sqlserver

Pyodbc - “未找到数据源名称,未指定默认驱动程序”

未找到数据源名称且未指定默认驱动程序