自己写了一个小软件,用于远程连接数据库。现在遇到一个问题,SQL Server 2008经常会登录错误。我的程序就报错。经常发生的错误是这样的:sa账户登录不上,报的错误是18456。我每次在服务器上用window身份验证都是可以正常登录的,我在安全性-登录名-sa下修改一下密码以后,sa就可以登上去了,然后软件也可以正常连接数据库了。可是过一段时间(非固定),又会出现同样的问题。但是把服务器安装在另外一台电脑上面就没有任何问题。SQL装了好几哥电脑,有的电脑老出问题,有的电脑偶尔几天出下问题,偶尔几天都正常。现在问题出最多的服务器,ping延迟在200ms左右,偶尔还有丢包现象,不知道这个会不会有问题。
我的QQ1375864791 ,麻烦各位大虾帮帮忙。
有关SQL2008数据库连接的问题。
答案:6 悬赏:40 手机版
解决时间 2021-03-01 08:28
- 提问者网友:难遇难求
- 2021-02-28 21:14
最佳答案
- 五星知识达人网友:独钓一江月
- 2021-02-28 21:59
把你的程序和数据库放在同一台机器上,然后用127.0.0.1这个地址访问数据库,这样不走网络,看看还出不出问题,如果不出就可以定位是网络的问题,如果还出问题就应该是数据库的设置问题了,主要要定位问题出在哪。
全部回答
- 1楼网友:骨子里都是戏
- 2021-03-01 01:17
远程数据库应该是低于2008的版本吧?2000?2005?
应该是因为这个所以报18456的错误吧
在你SQL SERVER里找到 配置工具--SQL SERVER 配置管理器--SQL SERVER 网络配置
吧MSSQLSERVER协议下得 ‘NAMED PIPES'和‘TCP/IP'启动
然后重启一下 SQL SERVER
如果还不行 我看过有个人在网上写的他用下面办法解决了 给你参考
SQL--配置工具--SQL SERVER CONFIGURATION MANAGER --里面的服务全部状态
改为“启动” 特别市 MSSQLSERVER 协议 和 SQLEXPRESS协议 里面的所有状态 都改成启用
然后重新打开 SQL 就可以了 !
- 2楼网友:摆渡翁
- 2021-03-01 00:16
SQL2008连不上,有这些原因:密码不对,服务未开启,版本不一致(如你用SQL2005连SQL2008).
像你的这种情况,很可能是服务问题,你确定你的电脑启动之后,你启动了SQL2008安装实例的服务吗?如果启动了,那么又是不是版本不一致呢,或者是你修改sa密码的时候修改不对(要确定你的sa密码设定的时候没有勾中“强制密码过期”和“强制实施密码策略”,因为它们默认是勾中的。)
- 3楼网友:低音帝王
- 2021-02-28 23:51
java连接数据库是通过jdbc实现的,之所以能够跨数据库,是因为每个数据库厂商按照jdbc相关接口进行编写相应的数据库连接与处理类。sql server 2008也不例外,需要自己的jdbc实现类才能够通过java连接数据库。sql server 2008需要sqljdbc4.jar这个jdbc架包,具体实现如下:
class.forname("com.microsoft.sqlserver.jdbc.sqlserverdriver");
connection conn = drivermanager.getconnection(
"jdbc:sqlserver://localhost;databasename=database", "sa", "sa");
- 4楼网友:像个废品
- 2021-02-28 23:39
SQL2008中默认SA是被停用的,你需要启用它,再给它设一个非空密码,才能用于连接.
至于SA隔一段时间就无法正常使用的问题,我猜是你给SA设密码时,选中了下面的一个选项"强制密码策略"(大概是这么个意思吧,手头没系统),这时,SA的密码将遵守它windows系统中对密码的要求,我记得windows默认密码的有效期是42天,也许你把它改得更短了,这样每过几天SA的密码就过期了,就出现了你现在的问题.
那你就去看看SA帐户的属性上有没有选中那个选项,如果选中了,把它去掉应当就不会再出现问题了,个人认为,这选项没用...
- 5楼网友:人间朝暮
- 2021-02-28 22:07
我会这样:
客户端不直接连服务端的数据库,同过发送指令让服务端返回数据。你需要密码可在客户端程序里加连接密码,不是通过sql连接的密码。
比如:客户端发送指令A,服务端从数据库中提出所需数据再返回客户端。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯