SQL SERVER 2005禁用 VIA协议为哪般?

2024-02-19 17:38

本文主要是介绍SQL SERVER 2005禁用 VIA协议为哪般?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天准备继续敲机房系统的时候,连接数据库,但是无法连接上服务器了,又出现了这样的提示:

之前也曾出现过这种情况,但是只知道要开启一些服务,但却不知道是为什么。昨天不知道哪根筋搭错了,不老老实实敲系统,却把有关数据库的服务项打开,只要是没有启用的,都给启用了,然后,今天数据库就连接不上了,而且自己也忘了都改了哪些服务项。然后就是各种查找各种试,未果。

于是又想起张文康的博客来了,他的博客里写过这个问题。确实,找到了问题的所在:我没有禁用VIA协议。

还记得SQL SERVER 2005中的网络配置里有一项是VIA协议吗?需要将它禁用以后才可以启动MSSQLSERVER。否则,启用其他服务的时候会给出相应提示:

但是为什么要禁用它才可以呢?它的存在又有什么用呢?

VIA协议是SQL Server的一个连接协议,全名Virtual Interface Architecture,中文名是虚拟接口架构。这个协议本是Wintel联盟想出来的。(Wintel,微特尔,字面上是指由MicrosoftWindows操作系统与IntelCPU所组成的个人计算机。实际上是指MicrosoftIntel的商业联盟,该联盟意图并成功地取代了IBM公司在个人计算机市场上的主导地位,所以也称Wintel联盟。)软硬联手造就了VIA,本来为了和不同的虚拟设备通信。任何设备都可以认为是虚拟设备,就是实现的抽象,本来为了适应不同的硬件厂商,适应不同的网络,或者java virtual machine,跨平台等,结果过于理想化,目标太大实现较为复杂,目前还是TCP/IP协议为至尊王者。

SQL SERVER配置管理器帮助里对VIA的属性是这样描述的:

默认端口:

默认设置是 0:1433,格式为 <network interface card number>:<port number>

启用:

可能的值包括。默认情况下,VIA 协议是禁用的。

侦听信息:

默认设置是 0:1433,格式为 <network interface card number>:<port number>。侦听多个端口时,将它们用英文逗号分开。此字段最多允许 2047 个字符。

SQL SERVER 2005中有四种网络配置协议,它们分别是:Shared MemoryTCP/IPNamed PipesVIA。默认情况下,SQL Server 使用“Shared Memory”协议连接到 SQL Server 的本地实例,使用“TCP/IP”命名管道连接到其他计算机上的 SQL Server 实例。

SharedMemory

是可供使用的最简单协议,没有可配置的设置。由于使用 Shared Memory 协议的客户端仅可以连接到同一台计算机上运行的 SQL Server 实例,因此它对于大多数数据库活动而言是没用的。如果怀疑其他协议配置有误,请使用 Shared Memory 协议进行故障排除。

TCP/IP

Internet 上广泛使用的通用协议。它与互连网络中硬件结构和操作系统各异的计算机进行通信。它包括路由网络流量的标准,并能够提供高级安全功能。它是目前在商业中最常用的协议。将计算机配置为使用 TCP/IP 可能很复杂,但大多数联网的计算机已经配置正确。

NamedPipes

是为局域网而开发的协议。内存的一部分被某个进程用来向另一个进程传递信息,因此一个进程的输出就是另一个进程的输入。第二个进程可以是本地的(与第一个进程位于同一台计算机上),也可以是远程的(位于联网的计算机上)。

VIA

虚拟接口适配器 (VIA) 协议和 VIA 硬件一同使用。请咨询硬件供应商,了解有关使用 VIA 的信息。

安装了多个 SQL Server 实例后,可以检查端口设置并将每个端口配置为仅可以被一个实例使用。使用 TCP/IP 时,SQL Server 阻止两个实例侦听同一个端口,但使用 VIA 时不阻止。如果两个实例在侦听同一个端口,则传入的 VIA 连接可能无法连接,或连接到意外实例。

也就是说如果同一计算机上安装有两个或多个 Microsoft SQL Server 实例,则 VIA 连接可能会不明确。VIA 协议启用后,将尝试使用 TCP/IP 设置,并侦听端口 0:1433。对于不允许配置端口的 VIA 驱动程序,两个 SQL Server 实例均将侦听同一端口。传入的客户端连接可能是到正确服务器实例的连接,也可能是到不正确服务器实例的连接,还有可能由于端口正在使用而被拒绝连接。所以不推荐使用 VIA 协议。

这篇关于SQL SERVER 2005禁用 VIA协议为哪般?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/725421

相关文章

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创

SQL Server使用SELECT INTO实现表备份的代码示例

《SQLServer使用SELECTINTO实现表备份的代码示例》在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误,在SQLServer中,可以使用SELECTINT... 在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误。在 SQL Server 中,可以使用 SE

mysql外键创建不成功/失效如何处理

《mysql外键创建不成功/失效如何处理》文章介绍了在MySQL5.5.40版本中,创建带有外键约束的`stu`和`grade`表时遇到的问题,发现`grade`表的`id`字段没有随着`studen... 当前mysql版本:SELECT VERSION();结果为:5.5.40。在复习mysql外键约

SQL注入漏洞扫描之sqlmap详解

《SQL注入漏洞扫描之sqlmap详解》SQLMap是一款自动执行SQL注入的审计工具,支持多种SQL注入技术,包括布尔型盲注、时间型盲注、报错型注入、联合查询注入和堆叠查询注入... 目录what支持类型how---less-1为例1.检测网站是否存在sql注入漏洞的注入点2.列举可用数据库3.列举数据库

Mysql虚拟列的使用场景

《Mysql虚拟列的使用场景》MySQL虚拟列是一种在查询时动态生成的特殊列,它不占用存储空间,可以提高查询效率和数据处理便利性,本文给大家介绍Mysql虚拟列的相关知识,感兴趣的朋友一起看看吧... 目录1. 介绍mysql虚拟列1.1 定义和作用1.2 虚拟列与普通列的区别2. MySQL虚拟列的类型2

Window Server创建2台服务器的故障转移群集的图文教程

《WindowServer创建2台服务器的故障转移群集的图文教程》本文主要介绍了在WindowsServer系统上创建一个包含两台成员服务器的故障转移群集,文中通过图文示例介绍的非常详细,对大家的... 目录一、 准备条件二、在ServerB安装故障转移群集三、在ServerC安装故障转移群集,操作与Ser

mysql数据库分区的使用

《mysql数据库分区的使用》MySQL分区技术通过将大表分割成多个较小片段,提高查询性能、管理效率和数据存储效率,本文就来介绍一下mysql数据库分区的使用,感兴趣的可以了解一下... 目录【一】分区的基本概念【1】物理存储与逻辑分割【2】查询性能提升【3】数据管理与维护【4】扩展性与并行处理【二】分区的

MySQL中时区参数time_zone解读

《MySQL中时区参数time_zone解读》MySQL时区参数time_zone用于控制系统函数和字段的DEFAULTCURRENT_TIMESTAMP属性,修改时区可能会影响timestamp类型... 目录前言1.时区参数影响2.如何设置3.字段类型选择总结前言mysql 时区参数 time_zon

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

使用SQL语言查询多个Excel表格的操作方法

《使用SQL语言查询多个Excel表格的操作方法》本文介绍了如何使用SQL语言查询多个Excel表格,通过将所有Excel表格放入一个.xlsx文件中,并使用pandas和pandasql库进行读取和... 目录如何用SQL语言查询多个Excel表格如何使用sql查询excel内容1. 简介2. 实现思路3