说说SQL Server 网络配置
打开Sql Server Configuration Manager,里面显示了SQL Server的网络配置,这些到底表示什么含义呢?

图一:MSSQLSERVER的协议
这些配置选项,其实就是为了保证客户端和数据库服务器能够正确的连接,以便接下来的一系列操作。下面我用一个假想的简化的例子,来解释解释。
假设我们编写了一个小程序,叫做test1.exe,运行后,就有了进程test.exe的进程,数据库服务器的数据库引擎也运行了,也就有了相应的进程sqlservr.exe。接下来我们需要test1访问数据库服务器引擎,也就是进程test1.exe访问进程sqlservr.exe,那么进程之间通信是如何进行的呢?
1.两个进程在一台电脑上
如果两个进程在同一台电脑上,也就是说test1.exe和sqlservr.exe在同一台电脑上运行,两个进程有自己独立的系统资源,两者是隔离的。但是可以开辟一个共享内存区,也就是shared memory,两个进程可以共享,进而实现进程间的通信。可见shared memory只能应用于客户端和服务器端在一台电脑的情况,不在一台电脑上,哪来的共享内存啊。
2.两个进程不在一台电脑上
(1)两个进程同属一个局域网:我们知道两个进程不在一台电脑上,所以无法使用shared memory了,这时可以通过named pipes来实现通信。named pipes是为局域网而开发的协议。
(2)两个进程属于不同的局域网:这个时候前面的办法都不行了,也就使用最常用的TCP/IP协议,来保证客户端和服务器连接。
总结:
(1)对于客户端和服务器都在一台电脑上,可以使用shared memory,速度最快,当然也可以采用named pipes和tcp/ip,相当于在同一台电脑上,两个进程非要绕一个弯再传送“秋波”,自然效率要低些。
(2)对于客户端和服务器在同一个局域网的:可以使用named pipes,速度最快,当然也可以通过TCP/IP,效率要低些。
(3)对于客户端和服务器不在同一个局域网的:只能只用TCP/IP了。
写到这里,你已经对图一中的协议了解了,你可能会说,干脆全打开算了,多省事,我建议不要这样,而是按需打开,为什么呢?第一:全打开增加了系统开销,你想啊,每开一个协议,都需要程序里面有个while循环来检测吧,自然开销多些(可能不是很明显)。第二:全打开安全性降低,试想,客户端会通过一扇门和服务器连接,干嘛还要开一些其他的门啊。
接下来,我们再想,客户端程序要和数据库引擎通信,可以有多种方式:shared memory,named pipes,TCP/IP,那么当都可用的时候,到底用哪个协议呢,总得有个顺序吧?确实是有一个顺序的,而且我们可以进行设置,通过客户端协议来配置,如下图:

里面列出了四个协议的默认顺序(VIA协议没怎么用过),shared memory默认是第一个,因为它速度最快,可以通过右键来改变顺序。如下图

好了,最后我们再说说“别名”中的设置,可以通过新建别名,来设定当客户端连接数据库服务器时,使用特定的协议,例如在同一台电脑上的客户端程序test.exe和数据库服务器程序sqlservr.exe,默认是采用shared memory连接,而且也最快,但是如果在别名里面设置为“连接数据库服务器程序用TCP/IP协议”,那么客户端和数据库服务器就只能通过TCP/IP来进行通信了,虽然速度慢些。
对于SQL Server配置管理器里面的东西,应该认识更清楚些了吧。
(完)
文档信息
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
- 本文为原创文章,欢迎转载,后续本博客会不断更新,因此请保留该文档信息。
- 本文地址:http://www.cnblogs.com/wuguanglei/p/4220814.html
说说SQL Server 网络配置的更多相关文章
- EntityFramework.SqlServer.dll 中发生 其他信息: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: Named Pipes Provider, error: 40 - 无法打开到 SQL Server 的连接)
解决方案: 1.打开Sql server 管理配置器 或者在命令行输入:SQLServerManager10.msc 2.点击MSSQLSERVER的协议,在右侧的页面中选择TCP/IP协议启用 3. ...
- Chapter 1 Securing Your Server and Network(6):为SQL Server访问配置防火墙
原文:Chapter 1 Securing Your Server and Network(6):为SQL Server访问配置防火墙 原文出处:http://blog.csdn.net/dba_hu ...
- 未找到或无法访问服务器 请验证实例名称是否正确并且SQL Server 已配置为允许远程连接
无法连接到sql server 2008服务器 报下错误 其他信息 在与SQL Server建立连接时出现与网络相关的或特定于实例的错误 未找到或无法访问服务器请验证实例名称是否正确并且SQL ...
- 请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: Named Pipes Provider, error: 40 - 无法打开到 SQL Server 的连接)
程序异常,错误信息:在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (pro ...
- SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件
SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件 https://blogs.msdn.microsoft.com/apgcdsd/2011/06/28/sql ...
- Ubuntu server 网络配置中遇到的问题
Ubuntu server 网络配置中遇到的问题 图片中ip地址有可能和文字不符,请不要在意太多,知道原理即可 - 1.首先就是要配置ip地址 vim /etc/network/interfaces ...
- vmworkstation安装unbuntu server 网络配置:NAT模式
之前安装虚拟机测试环境的时候,习惯了使用桥接模式或者仅主机模式:今天偶然发现,其实NAT 模式的网络配置还是挺方便的. 在新建虚拟机的时候,选择网络模式为NAT,虚拟机创建完成之后,在vmworkst ...
- 使用IP连接SQL SERVER或者配置为连接字符串失败
使用IP连接SQL SERVER或者配置为连接字符串失败 情景一:当在webconfig文件中使用 <add key="ConnectionString" value=& ...
- System.Data.SqlClient.SqlException: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: SQL Network Interfaces, error: 26 - 定位指定的服务器/实例时出错)
A network-related or instance-specific error occurred while establishing a connection to SQL Server. ...
随机推荐
- Mac 显示隐藏文件
defaults write com.apple.finder AppleShowAllFiles -bool true 此命令显示隐藏文件defaults write com.apple.finde ...
- Beginning Scala study note(8) Scala Type System
1. Unified Type System Scala has a unified type system, enclosed by the type Any at the top of the h ...
- java调用sqlldr oracle 安装的bin目录
package com.jyc.sqlldr; import java.io.BufferedReader;import java.io.InputStream;import java.io.Inpu ...
- PHP 显示文章发布日期 一小时前 一天前 一月前 一年前
<?PHP /*** 传入日期格式或时间戳格式时间,返回与当前时间的差距,如1分钟前,2小时前,5月前,3年前等* @param string or int $date 分两种日期格式" ...
- 一、PID控制原理
在模拟控制系统中,控制器最常用的控制规律是PID控制.模拟PID控制系统原理框图如下图.系统由模拟PID控制器和被控对象组成. PID控制器是一种线性控制器,它根据给定值Yd(t)与实际输出值Y(t) ...
- DirectX9 Sample_Empty Project
作为第一个程序,EmpytProject仅仅示范了如何绑定DXUTstate结构中的回调函数. 回调函数 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当 ...
- OpenCV(三) 之 基本数据结构 CvMat和 IplImage
OpenCV(三) 之 基本数据结构 CvMat和 IplImage CvMat IplImage OpenCv中基本的数据类型 类型 参数 表示 CvPoint int x,y 像素点 CvPoin ...
- Spring AOP详解
一.前言 在以前的项目中,很少去关注spring aop的具体实现与理论,只是简单了解了一下什么是aop具体怎么用,看到了一篇博文写得还不错,就转载来学习一下,博文地址:http://www.cnbl ...
- [Leetcode] Number of Digit Ones
Given an integer n, count the total number of digit 1 appearing in all non-negative integers less th ...
- Mybatis总结
jdbc.properties driver=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/testdb username=root pa ...