说说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. ...
随机推荐
- mysql salve从库设置read only 属性
在MySQL数据库中,在进行数据迁移和从库只读状态设置时,都会涉及到只读状态和Master-slave的设置和关系. 经过实际测试,对于MySQL单实例数据库和master库,如果需要设置为只 ...
- 学习微信小程序之css4设置颜色,单位表示,字体样式
颜色的设置可以通过RGB设置 可以直接通过英文单词设置 可以通过16进制来设置 长度单位: 字体样式: 设置字体样式 字体粗细 设置字体风格 设置字间距
- 进击的Python【第二章】:Python基础(二)
Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...
- pythony语法小练习
i=[0,1] b=[2,3] print(dict([i,b]))#列表转换为字典 题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析:可填在百位.十位 ...
- 现场打印智能无线PDA安卓POS 条码识别、打印、数据采集销售开单收银管理软件
现场打印安卓POS 条码识别.打印.数据采集管理软件 案例: 经营日化品牌,从事小型超市和日用品商店的批发配送业务. 公司以前的销售模式:三个业务员负责跑市场,每个人负责一个区域,平均每天每个人要去到 ...
- ASP.NET MVC3中Controller与View之间的数据传递总结
一. Controller向View传递数据 1. 使用ViewData传递数据 我们在Controller中定义如下: ViewData["Message_ViewData& ...
- uploadify批量上传
js: $("#uploadify").uploadify({ 'uploader':'uploadServlet', 'swf':'image/uploadify.swf', ' ...
- php安装配置那些事(本文纯属个人记事与技术无关)
上周由于项目需要,又拿起了三年没动过的php,从安装环境到配置,大体已经忘干净,于是咨询同学问度娘,终于在我的win7系统下安装了xampp的集成环境+NetBeans IDE 8.0,于是导入项目文 ...
- zepto区别于jquery获取select表单选中的值
在jquery下,我们获取select表单选中的值通常是通过$('select').val()来实现,这样的方式简单又明了,或者通过$('select option[selected]').text( ...
- ajax教程
本文来自w3school 简介: AJAX = Asynchronous JavaScript and XML 异步的javascript和xml ajax不是新的编程语言,而是一种使用现有标准的新方 ...