【QT 数据库专辑】【03】WIN7下搭建本地SQL SERVER数据库 - 包括无法登录远程数据库问题解决办法

前言:

经过试验,差不多弄清楚了,几种连接不上的原因了。大多数是配置,账户,密码的问题,这里主要是有一个先后的配置顺序:

首先,

我们需要安装哪些东西、配置哪些东西来搭建呢:大约有以下6个需要配置的东西:

1 SQL SERVER 2008 这个是我用的SQL SERVER的软件:

无论哪个版本,基本有两个SQL SERVER的基本工具:

2 一个是:SQL SERVER配置管理器、

一个是:SQL SERVER Management Studio

3 安装的时候,需要配置SQL SERVER的账户为windows 账户和  SQL SERVER的账户都可以用:

那么,最好是你先在windows 里面设定几个你需要分级的账户,因为安装的时候,不同的sql server的服务最好用不同的账户和密码

(这里需要注意,数据库开始的时候是没有你设定的账号的,你需要在安装数据库之后,通过默认的windows账户进去后,在数据库里面重新设定好你需要的账户才有效)

4 windows 的ODBC配置

5 SQL SERVER Management Studio 里面数据库的配置

6 SQL SERVER Management Studio 里面帐号密码设置

其次,配置的顺序是什么呢?

1 首先是安装上述相关的软件

2 第一个配置:SQL SERVER配置用户的账户和密码

是安装SQL SERVER的时候,需要配置你的SQL SERVER 的用户和密码,这里有一个选项是:是否要支持SQL SERVER的验证,

默认是用windows 当前的账户和密码来访问,

注意,如果你的数据库需要跨网络的话,必须选择使用密码的SQL Server验证



选择好之后,你一定会遇到第一个连接问题,就是连接SQL Server的时候,你想用一个自己的密码访问,但是设定后,SQL SERVER根本不搭理你,你会出现连接不上的错误,

在这里的出错原因是,你如果是第一次安装SQL SERVER的时候,你的数据库还没有建立,默认的数据库是没有你的访问用户名和密码的,怎么办?

由于你必须使能 SQL SERVER的验证来使能网络之间数据库的共享,那么好,你可以选择在安装之前,先建立一个WINDOWS的账户和密码,然后填入就可以了。

安装好SQL SERVER之后

3 在SQL SERVER Management Studio 里面数据库的配置和账户密码

你需要建立一个自己的数据库,而不是用系统默认的。

那么现在,你如果用之前你安装SQL SERVER的账户和密码去访问SQL SERVER Management Studio,

你会遇到第二个无法访问问题

这是因为,系统的SQL SERVER虽然跑起来了,但是,数据库其实 没有注册你的用户密码,你当然可以在系统默认数据库里面设定你的账户,但是,我推荐,你还是建一个自己的数据库然后自己去自由的摆弄吧。那么你如何登陆呢,你需要用默认的windows 用户和密码进行访问先,然后在进入数据库 之后,右击数据库建立自己的数据库,然后,在安全性选项里面选择增加一个和之前定义的账户密码相同的账户。



4 你需要确认一下本地的账户密码是否已经完备。

需要断开当前的数据库连接然后,用你在数据库里面设定的账户和密码来连接一下。


如果没有意外,上面的连接应该是可以的。

现在开始要对不同的网络的机器的连接

5 配置局域网,保证每台机器可以ping通(略)

6 现在,你会遇到第三个连接问题

那就是各台机器已经可以拼通了,本地账户密码也已经可以了,怎么就不能用SQL SERVER Management Studio来远程登录数据库呢?

这里或许有其他的一些问题,你需要通过SQL SERVER配置管理器来保证你的配置正确。

首先,这里有两个地方的配置需要检查

第一就是,数据库的连接协议


你必须设定为TCP/IP的连接方式,

第二:

你必须检查一下,你的登陆账户身份设定是不是用了外网的方式:


然后,你需要检测一下,你的这个给其他机器的账户,别的计算机能访问吗? Ping通不表示可以访问,有很多其他因素,比如

对方的防火墙,360的设定,或者,其他网络的限制,如何确认,其他机器账户是可以访问的呢,那么,我的试验是,构建一个共享文件夹来确认一下,


如下,如果你连这个共享目录都无法访问, 那么数据库就更无法访问了吧

对于共享目录的访问问题,主要是设定访问权限的问题,当然别忘了还有工作组或者域的设定必须一直才行。

7 似乎万事俱备了,就欠东风了吧?

No!是不是想骂人啊 哈哈 请绅士一点,马上就好

现在是你可能遇到的第4个连接不上的问题

原因是需要配置WINDWOS的ODBC数据源管理器,把你的数据库和数据库的账户密码告知给windows的网络服务系统。

下面的例子会说明如何配置ODBC来解决这个问题。

小结一下:

远程连接SQL SERVER的数据库需要安装上述的步骤,逐个检查配置数据库源,这样你的数据库就可以在不同的机器内进行分享了。




如下:

这里介绍一个顺序的实例如何连接微软的SQL SERVER

1 设定ODBC数据源管理器

首先需要确认在ODBC的数据源管理器里面有你需要连接到数据集

然后我们打开编辑的子菜单

红色是后面QT的数据库连接时候需要用到的参数

然后你需要确定你的数据连接是正确的,如果有问题可以参照我之前的博客文章。

一般是连接配置,用户的密码等设定问题,我这里用了和winodws登录一样的配置,所以,没问题。

2 QT的设定

其实QT的设定,和之前MYSQL的设定是一样的,不需要修改,所以,这里我略去了。

请参阅之前的博客文章。

3 设定本地 SQL Server Configuration Manager


在SQL Server里面选择你要启动点Server ,右击选择启动,则会启动SQL Server


然后,你需要配置你的网络协议,这里网络协议的配置有两个页面,第一个是总页面叫做【协议】,配置说明如下:

启用
可能的值为"是"和"否"。

保持活动状态
指定传输保持活动状态的数据包的时间间隔(毫秒),以检查位于连接远端的计算机是否仍可用。

全部侦听
指定 SQL Server 是否侦听所有绑定到计算机网卡的 IP 地址。 如果设置为"否",则使用每个 IP 地址各自的属性对话框对各个 IP 地址进行配置。 如果设置为"是",则 IPAll 属性框的设置将应用于所有 IP 地址。 默认值为"是"。 

无延迟
SQL Server 不会实施对此属性的更改。



遇到的问题:

1 SQL SERVER无法连接的问题,

问题描述,在SSCM里面,之前的数据库连接突然不能使用了。打开SSCM看到SQL SERVER的实例存在,网络的配置基本没有改变,为何突然不能使用了呢?



1.1 检查Windows的错误日志


通过【控制面板】-》【管理工具】-》事件查看器 可以打开WINDOWS的错误事件来查看SQL SERVER的错误讯息,



1.2 检查SQL Server的日志

SQL Server在windows的错误LOG的地址一般如下:

C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Log


这里每次连接错误都会有LOG的记录,我们来看一下一个具体的连接错误的记录:

2018-01-22 09:36:07.39 Server      Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (X64) 
	Mar 29 2009 10:11:52 
	Copyright (c) 1988-2008 Microsoft Corporation
	Express Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)

2018-01-22 09:36:07.39 Server      (c) 2005 Microsoft Corporation.
2018-01-22 09:36:07.39 Server      All rights reserved.
2018-01-22 09:36:07.39 Server      Server process ID is 24252.
2018-01-22 09:36:07.39 Server      System Manufacturer: 'System manufacturer', System Model: 'System Product Name'.
2018-01-22 09:36:07.39 Server      Authentication mode is WINDOWS-ONLY.
2018-01-22 09:36:07.39 Server      Logging SQL Server messages in file 'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Log\ERRORLOG'.
2018-01-22 09:36:07.39 Server      This instance of SQL Server last reported using a process ID of 11360 at 2018/1/22 9:34:38 (local) 2018/1/22 1:34:38 (UTC). This is an informational message only; no user action is required.
2018-01-22 09:36:07.39 Server      Registry startup parameters: 
	 -d C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\master.mdf
	 -e C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Log\ERRORLOG
	 -l C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\mastlog.ldf
2018-01-22 09:36:07.39 服务器         SQL Server is starting at normal priority base (=7). This is an informational message only. No user action is required.
2018-01-22 09:36:07.40 服务器         Detected 4 CPUs. This is an informational message; no user action is required.
2018-01-22 09:36:07.41 服务器         Using dynamic lock allocation.  Initial allocation of 2500 Lock blocks and 5000 Lock Owner blocks per node.  This is an informational message only.  No user action is required.
2018-01-22 09:36:07.44 服务器         Node configuration: node 0: CPU mask: 0x000000000000000f Active CPU mask: 0x000000000000000f. This message provides a description of the NUMA configuration for this computer. This is an informational message only. No user action is required.
2018-01-22 09:36:07.46 spid7s      Starting up database 'master'.
2018-01-22 09:36:07.50 spid7s      FILESTREAM: effective level = 0, configured level = 3, file system access share name = 'BIM-DEMO-SQL-SERVER'.
2018-01-22 09:36:07.51 spid7s      SQL Trace ID 1 was started by login "sa".
2018-01-22 09:36:07.52 spid7s      Starting up database 'mssqlsystemresource'.
2018-01-22 09:36:07.53 spid7s      The resource database build version is 10.00.2531. This is an informational message only. No user action is required.
2018-01-22 09:36:07.56 spid10s     Starting up database 'model'.
2018-01-22 09:36:07.56 spid7s      Server name is 'BIM-SERVER\SQLEXPRESS'. This is an informational message only. No user action is required.
2018-01-22 09:36:07.57 spid7s      信息: 找不到支持全文的语言。
2018-01-22 09:36:07.57 spid7s      Starting up database 'msdb'.
2018-01-22 09:36:07.64 spid10s     Clearing tempdb database.
2018-01-22 09:36:07.73 服务器         A self-generated certificate was successfully loaded for encryption.
2018-01-22 09:36:07.74 服务器         错误: 26024,严重性: 16,状态: 1。
2018-01-22 09:36:07.74 服务器         Server failed to listen on fe80::e0:0:0:0%11 <ipv6> 1433. Error: 0x277a. To proceed, notify your system administrator.
2018-01-22 09:36:07.74 服务器         错误: 17182,严重性: 16,状态: 1。
2018-01-22 09:36:07.74 服务器         TDSSNIClient initialization failed with error 0x277a, status code 0xa. Reason: 无法初始化 TCP/IP 侦听器。 无法加载或初始化请求的服务提供程序。

2018-01-22 09:36:07.74 服务器         错误: 17182,严重性: 16,状态: 1。
2018-01-22 09:36:07.74 服务器         TDSSNIClient initialization failed with error 0x277a, status code 0x1. Reason: 初始化失败,出现基础结构错误。请检查以前的错误。 无法加载或初始化请求的服务提供程序。

2018-01-22 09:36:07.74 服务器         错误: 17826,严重性: 18,状态: 3。
2018-01-22 09:36:07.74 服务器         Could not start the network library because of an internal error in the network library. To determine the cause, review the errors immediately preceding this one in the error log.
2018-01-22 09:36:07.74 服务器         错误: 17120,严重性: 16,状态: 1。
2018-01-22 09:36:07.74 服务器         SQL Server could not spawn FRunCM thread. Check the SQL Server error log and the Windows event logs for information about possible related problems.

我们来看一下,第一秒 Server做了什么,把
1 SQL Server的进程ID打印出来了,“This instance of SQL Server last reported using a process ID of 11360 ”
2 做好了各种配置选项
3 然后启动了数据库"database 'master'"
第一个错误:
2018-01-22 09:36:07.74 服务器         错误: 26024,严重性: 16,状态: 1。
2018-01-22 09:36:07.74 服务器         Server failed to listen on fe80::e0:0:0:0%11 <ipv6> 1433. Error: 0x277a. To proceed, notify your system administrator.
是一个IPV6的监听错误

franklin:

 从两个错误的讯息看,都把这一题都把错误指向了网络的连接错误:

检查的几个手段:

1 检查默认端口 1433


>netstat -ano|findstr "1433" 通过命令可以检查1433的端口占用情况

 2 杀毒软件防火墙都退出

3 重装SQL Server

试验证明重装SQL SERVER是可以解决这个问题的。




4 网络配置协议里面的VIA是不是开启了,开启了关闭


网络配置协议里面的VIA是不是开启了,开启了关闭

问题的几个很有益的参考网站:

1 https://www.cnblogs.com/gqrbkw/p/5632134.html

2 这时候可能会遇到无法连接的问题

http://www.mamicode.com/info-detail-847367.html

3 你所不知道的SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧

3.1  "SQL Server 不存在或访问被拒绝" (不是我的问题)

3.2 检查服务器端的网络配置,检查是否启用了命名管道.是否启用了TCP/IP 协议(我已经用了)

3.3 在客户端检查客户端的网络配置  (没找到)



https://www.cnblogs.com/zhijianliutang/p/4085546.html

4 SQL server开启TCP/IP登录,并且启用默认的1433端口 (不能解决我的问题)

https://www.2cto.com/database/201304/204867.html

5 sql server 请求失败或服务未及时响应

http://blog.csdn.net/libins/article/details/56676531



欢迎讨论:

QQ:28044280 

微信:NewTechLife


猜你喜欢

转载自blog.csdn.net/yellow_hill/article/details/79011410