java连接数据库用户 'sa' 登录失败。 ClientConnectionId:解决方法_qq_27753893的博客-程序员ITS304_java用户sa登录失败

   
使用 JDBC 连接数据库时候,前些天还好好的,突然就不能用了,报了下边的错误
at com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。 
错误原因是登录失败
第一步:考虑是数据库没有配置为双身份认证模式
经过核实,配置是正确的,没有错误
第二步:考虑是 properties 文件中 sa 用户密码写错了
经过核实,没有错,而且又重新设置了一遍,确定为 123456
第三步:考虑是服务中有些 SQLServer 需要使用的服务没有开启
services.msc 进入服务里边打开了所有和 SQLServer 有关系的服务,然而并没有解决
第四步:考虑是不是端口号没有写对
进到 SQL Server 配置管理器里边核实了 1433 并且启用了TCP/IP 的所有端口,然而依然没有解决
第五步:考虑是不是 SQLServer 2012 版本里边的 URL 格式改变了,不能用 localhost 或者 127.0.0.1 应该用主机名\实例名的方式,于是查到主机名,实例名,修改了URL,然而依然没有卵用
第六步:偶然看到一个网友说,自己在项目的某一个地方修改了 sa 或者 密码值,然而自己没有注意到,于是建议说全项目文件查找关键字 sa 或者 password 或者 user,经查找,无果
第七步:又见一个网友说,无论怎么都找不到原因,所以重新构建了一次工程,重新建了所有的包,类,问题解决了,考虑太麻烦,所以没有采用
第八步:又有网友说,重装一次 SQLServer,想想就觉着工程太浩大了,因为才重装过,装一次花好长时间,而且卸载不干净,之前因为卸载不干净的问题甚至重装了系统进行干净安装,实在心累,所以也没有重装
第九步:又有网友说,不用 MSSQLSERVER 使用 SQLEXPRESS,问题解决了,然而查看了一下配置管理器,根本就没有装 SQLEXPRESS 这个东西,作罢

截止到这里,网上能找到的错误原因和解决方法都已经浏览了一遍,整个人都要不好了,因为问题解决不了,接下来就没办法进行了。
就在这时,不得不重新考虑,为什么是今天才出现的问题,今天做的事和往常到底有什么不同,想来想去,有两个不同:
1. SQLServer 是重新安装的,之前用户 sa 用的密码是 sa,重新安装时候要设置 sa 密码时候不支持过短的 sa,于是改成了 123456
2. 今天使用的工程是从旧有的工程复制过来的,原来的工程 properties 文件 sa 密码依然是 sa
第十步:考虑是不是 properties 文件读取时候出现了混乱,读了原来工程中的 properties 文件,而不是新工程的
于是修改原工程 properties 中 sa=123456,无果
第十一步:考虑依然是读 properties 文件出了问题
于是舍弃读 properties 文件这一步,直接把 user 和 password 值写死到 DriverManager.getConnection(url, "sa", "123456")。竟然成功登进去了,也是心累
第十二步:现在看来,绝对是读 properties 文件出了问题
于是测试从 properties 文件中读到的到底是什么值
String user = properties.getProperty("user");
String password = properties.getProperty("password");
System.out.println("user:" + user);
System.out.println("password:" + password);
结果显示,user=sa;password=sa。而此时,两个工程中我都已经把 password 改成 123456 了,那这个 password=sa 到底是从哪儿读到的呢?
于是重新再修改两个工程中的 password 为随便的值,执行结果依然还是 password=sa。无语了,好像工程文件 properties 中无论怎么修改,都不影响  properties.getProperty("password"); 的值。这时候只能认为:在 eclipse 中进行的 properties 文件内容修改无效。就是不影响文件本身的内容。
第十三步:考虑是在 eclipse 中修改 properties 文件内容后,可能需要刷新才能够同时修改文件本身的内容
刷新了,没用
第十四步:这时候,就只剩下了修改文件本身了
于是在 F 盘中找到工程所在目录,找到 properties 文件,用记事本打开,修改 password=123456,刷新工程,重启 Tomcat,成功……

学习到:1.Properties 在 load() 文件后,修改属性值,需要再 store() 才能够把修改后的值写入到硬盘文件中;2.在 eclipse 中修改 properties 文件对硬盘中的文件本身是没有影响的(即使已经刷新过了);3.在编程中,一个小知识点不清楚就要花很多的时间走很多的弯路……

大半天都在折腾这一件事,觉着相当浪费时间,但是既然问题解决了,还是应该分享出来,让一不小心和自己出现同样问题的同学能够节省一些时间,毕竟自己也是看了许多网友的分享,学习到了很多新的东西
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_27753893/article/details/80752169

智能推荐

Element分页handleCurrentChange方法触发问题解决_qq_35049655的博客-程序员ITS304

先操作element分页,切换到第二页,然后操作。从代码中强制将current-page强制设置为1(即重新查询数据,并将当前页重置为第1页)此时画面显示是对的,分页组件已经将第1页的页码数字激活了然后点击第2页数字,进行换页画面显示也是对的,第2页数字变成激活状态,但是此时竟然无法触发current-change事件原因使用this.pagination.currentP...

B001-Atmega16-定时器1-(ques=1)_Manon_des_sources的博客-程序员ITS304

Atmega16-定时器1 功能测试(定时、CTC、PWM)

autojs今日头条急速脚本_stevenzhao1的博客-程序员ITS304_今日头条极速版脚本

研究了一下刷头条的金币脚本,先下载autojs7pjb.apk安装在手机上,然后下载vscode安装到电脑上,然后安装相关autojs的插件。先新建一个项目,打开main.js,输入auto.waitFor();app.launchApp('今日头条极速版');sleep(10000);if (id("f2").exists()) { back(); id("f2").findOnce().click();}/** * 今日头条读新闻 */for (var i =

PCB原理图绘制(种草立创eda)_ZL.zheng的博客-程序员ITS304_立创eda怎么画原理图

首先,相对于我们平时所用的ad。这个就很适合我们英文不好的中国人了。然后这个一站式搞定,画完商城下单就可以做我们的板子了。整个设计界面也很友好,封装库也不需要我们自己封装。很多商城里面都有,可以直接购买使用。。具体教程我也是初学者,后面学习的时候在做笔记,现在发个学习的链接保存一下。一遍自己可以保存。https://docs.lceda.cn/cn/Videos/Demo-Video/index.html#%E7%AB%8B%E5%88%9BEDA%E5%BF%AB%E9%80%9F%E5%85%A5%

超像素(Superpixel)理解_Linear_Luo的博客-程序员ITS304_超像素是什么意思

最近看点云处理的文章,有些文章中提到了superpixel这个概念,查了一些资料,对其理解记录如下:超像素就是把一幅原本是像素级(pixel-level)的图,划分成区域级(district-level)的图。可以将其看做是对基本信息进行的抽象。超像素分割属于图像分割(image segmentation),再细化应该属于过分割(over segmentation)。比如我们对一幅图像进行超像

随便推点

简单Java swing登录gui_T神的博客-程序员ITS304_java用swing建立登录界面

import javax.swing.JButton; import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;public class test { p...

Android进阶:多线程断点续传下载_BianChengNinHao的博客-程序员ITS304

今天跟大家一起分享下android开发中比较难的一个环节,可能很多人看到这个标题就会感觉头很大,的确如果没有良好的编码能力和逻辑思维,这块是很难搞明白的.什么是多线程下载?多线程下载其实就是迅雷,BT一些下载原理,通过多个线程同时和服务器连接,那么你就可以榨取到较高的带宽了,大致做法是将文件切割成N块,每块交给单独一个线程去下载,各自下载完成后将文件块组合成一个文件,程序上要完成做

python实现登录验证系统(搭建MVC框架)_东木月的博客-程序员ITS304

小型登录注册验证系统一、概述​ 使用Redis+MySQL数据库实现一个小型的登录注册验证系统。在这个系统中初步了解认识MVC框架。​ 具备功能:登录、注册、改密、注销。​ 数据库:Redis,MySQL。​ 开发语言:Python。​ MVC框架:MVC全名是Model View Controller,是模型(model)-视图(view)-控制器...

利用python修改json文件的value_cabinx的博客-程序员ITS304_python修改json文件内容

    做工程时遇到需要监听json文件,根据json文件中的key-value值作出相应处理的情形。为此写了修改json文件的python脚本供工程后续调用。    代码如下:# coding=utf-8 //设置文本格式import os,sysimport jsondef get_new_json(filepath,key,value): key_ = key.split("."...

指向函数的指针(一)_zhenyonghou的博客-程序员ITS304_指向函数的指针

之所以想写一篇函数指针的文章,源于函数指针在C/C++编程中使用的广泛性,而对于一些初级编程者来说对函数指针的使用或许有些迷惑,而一旦在适当的时候使用了函数指针,会使代码简洁有力。本篇介绍的是函数指针的基础部分,函数指针复杂的应用将在下一篇介绍。一  指向普通函数的指针先来看一个函数:int Sum(int a, int b){ return a + b;}这个函数,调用

java事件。_helianus的博客-程序员ITS304

事件一共有三个主体。1.事件源(Source Object),事件的发起者。2.监听器(Listener),监听事件的人。3.事件(Event)本身。举个栗子:你在看某个漂亮小姐姐的直播,当这个小姐姐给你唱了首歌的时候,你给他打赏了一个土豪土匪礼物。1.上面这句话中,小姐姐是事件源,而你则是监听器,监听着小姐姐。2.小

推荐文章

热门文章

相关标签