当前位置:首页 > 问答 > 正文

VS连接数据库老是出错,怎么弄才能顺利连上啊问题解决分享

最近真是被Visual Studio(后面就简称VS了)连接数据库这个问题给折腾坏了,明明感觉每一步都对了,可那个错误提示就是冷不丁地蹦出来,气得人想拍桌子,经过一番折腾,总算摸到了一些门道,今天就把我遇到的坑和怎么爬出来的,一股脑儿分享给大家,希望能帮到同样被困住的朋友。

第一大拦路虎:SQL Server服务根本没开

这个是最常见,但也最容易被忽略的问题,VS就像一个访客,它要去数据库家里拿东西,结果到了发现数据库家的大门(也就是SQL Server服务)是锁着的,那肯定进不去啊,我第一次遇到的时候也懵了,代码没错,连接字符串看着也对,怎么就连不上呢?

怎么弄: 你得先去确认一下“主人家”的门开没开,在电脑右下角的搜索框里输入“服务”,打开那个“服务”应用,然后在长长的列表里找到你的数据库服务,名字一般是“SQL Server (MSSQLSERVER)”或者“SQL Server (SQLEXPRESS)”,你看到它左边的“状态”如果是“已停止”,那就对了,问题就在这儿,右键点击它,选择“启动”,等状态变成“正在运行”后,再回VS里试试连接,很可能就成功了,这是我遇到的第一个坎儿,解决了之后心情大好。

VS连接数据库老是出错,怎么弄才能顺利连上啊问题解决分享

第二大迷糊点:服务器名称写错了

连接数据库就像加微信好友,你得输对微信号才行,服务器名称就是数据库的“微信号”,很多人(包括我)会想当然地写个“localhost”或者“.”,觉得这肯定代表本机没错,大部分时候是这样,但有时候就会出岔子。

怎么弄: 有一个特别可靠的方法能帮你找到正确的服务器名,打开电脑上的“SQL Server Management Studio”(如果你装了的话,没装的话可以试试其他方法),在登录界面,点击“服务器名称”那个下拉框,它会自动帮你搜索并列出当前可用的数据库实例名,你直接把那个完整的名字复制下来,比如我电脑上可能就是“MY-PC\SQLEXPRESS”这种格式,然后把它原封不动地贴到VS的服务器名输入框里,这样就能确保万无一失了,这个方法是一位有经验的程序员在论坛里提到的,我试了之后发现确实比瞎猜靠谱多了。

第三大头疼事:登录身份验证没选对

VS连接数据库老是出错,怎么弄才能顺利连上啊问题解决分享

连接数据库的时候,有两种主要的登录方式:一种是“Windows身份验证”,另一种是“SQL Server身份验证”,简单说,前者是用你当前登录电脑的账号密码去登录数据库,后者是需要你单独设置一个数据库的用户名和密码。

怎么弄: 如果你从来没设置过数据库的账号密码,那 safest bet(最保险的选择)就是先用“Windows身份验证”试试,这种方式通常不需要你额外输入密码,VS会直接用你的Windows身份去尝试连接,省事又安全,如果这种方式能连上,但换成SQL Server验证就报错,那说明你的数据库账号密码可能不对,或者根本就没创建那个账号,这时候你就需要去数据库里检查一下登录名和密码设置了,这个区别是我在微软官方的入门文档里看到的,搞清楚之后就不会再选错了。

第四大隐藏关卡:防火墙或者网络问题

这个情况稍微复杂点,你的数据库服务运行得好好的,但电脑的防火墙觉得这个连接请求不安全,就给拦截下来了,特别是在一些公司网络或者有严格安全设置的电脑上,很容易出现这种情况。

VS连接数据库老是出错,怎么弄才能顺利连上啊问题解决分享

怎么弄: 你可以尝试临时关闭防火墙来测试一下,在搜索框输入“防火墙”,选择“Windows Defender 防火墙”,然后点击“启用或关闭Windows Defender防火墙”,暂时把两个网络位置的防火墙都关掉。注意:这只是为了测试! 如果关闭防火墙后就能连上了,那说明问题就在防火墙,测试完后,记得马上重新打开防火墙以保证安全,然后你需要去防火墙设置里,为SQL Server的进程(sqlservr.exe)或者对应的端口(默认是1433)添加一个允许规则,这个方法是在一个技术博客上看到的,属于进阶一点的排查手段。

最后的大招:查看详细的错误信息

当所有常规方法都试过了还是不行,千万别慌,VS给出的错误提示虽然有时候看起来很吓人,但里面往往藏着最关键的信息。

怎么弄: 别只看弹窗里那句简单的话,想办法点开“详细信息”或者查看“错误列表”窗口,里面可能会有一长串的错误代码和描述,错误40 - 无法建立连接”、“错误18456 - 登录失败”等等,把这些错误代码直接复制下来,然后去网上搜索,VS连接数据库 错误18456”,你大概率会找到非常具体的解决方案,因为很多人可能都遇到过一模一样的问题,并且把解决方法分享出来了,我就是靠这最后一招,解决了一个特别诡异的权限配置问题。

VS连不上数据库,别急着怀疑人生,按照从简单到复杂的顺序,一步步来:先看服务开没开,再核对服务器名对不对,然后检查登录方式选没选对,最后考虑防火墙和网络因素。 实在不行,就靠详细的错误信息去网上求援,希望我的这些折腾经历,能让你下次遇到问题时,能更淡定、更顺利地连上数据库!