Access denied for user(这个几乎让我怀疑人生的异常)
昨天一时兴起,打算根据自己的某些想法,业余时间写一个简单的项目,用以巩固那些重要的知识,以及练手一些即将学习的技术。
然而才一开始,便有一盆冷水迎面而来,在搭建整个框架环境的时候竟然就被卡住了!主要是两个问题,第一个还好说,可是第二个,让我抓狂,让我差点怀疑人生!
最终结果是,一个是因为单词拼写错误,一个是因为多余的空格!
拼写错误害死人,空格害死人啊!
这个跟头真是一摔再摔,前赴后继!
这个项目我打算依旧以常规的spring+spring+spring mvc的整体架构来进行,于是便根据自己之前写的一篇框架搭建开始动手:http://blog.csdn.net/tuzongxun/article/details/51153773?locationNum=2&fps=1
原本,对于这个整体框架搭建我是信心满满的,因为之前认真的弄过好久,对于上边这篇文章所写的内容也是相当自信。
虽然我写的那些文章不一定有深度,但是除开一些理论性的,其他都绝对是自己亲自尝试过的,实用性和可行性我敢保证。
然而就在我确认搭建好,该修改的配置也都一一修改完以后,一启动tomcat居然报错了:
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from relative location [spring-MybatisConfig.xml]
Offending resource: class path resource [spring.xml]; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from URL [file:/D:/eclipseWorkspace1/.metadata/.plugins/org.eclipse.wst.server.core/tmp2/webapps/myBlog/WEB-INF/classes/spring-MybatisConfig.xml]; nested exception is java.io.FileNotFoundException: D:\eclipseWorkspace1\.metadata\.plugins\org.eclipse.wst.server.core\tmp2\webapps\myBlog\WEB-INF\classes\spring-MybatisConfig.xml (系统找不到指定的文件。)
at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:70)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:76)
好吧,这个提示太直白,系统找不到指定的文件!
根据以往的经验,我略一思索变想到多半是单词拼写错误,于是自然而然的自看了一眼文件名,果不其然,我的这个文件是这样的:
原来是spring打成了srping。
既然找到了问题,解决起来自然不是问题,我一直觉得问题不可怕,可怕的是找不到问题在哪儿!
然而,就在我以为大功告成的时候,再一启动tomcat,居然还是报错了,这次的错是:
十一月 29, 2016 10:29:10 上午 com.alibaba.druid.pool.DruidDataSource error
严重: init datasource error
java.sql.SQLException: Access denied for user 'tzx '@'tuzongxun' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:996)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3887)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3823)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:870)
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1659)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1206)
看到这个错,我就有点不淡定了,因为这个错也是似曾相识的啊,如果我没记错,那就是密码错误的问题。
但是!我的密码分明没有问题!config.properties文件相关的内容如下:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.0.7:3306/myblog?useUnicode=true&characterEncoding=utf-8
jdbc.username=tzx
useUnicode=true&characterEncoding=utf-8
jdbc.password=123456
为了验证究竟是不是密码问题,我还特意写了一个jdbc来连接:
public static void mysqlTest() {
String driver = "com.mysql.jdbc.Driver";// 数据库驱动
String url = "jdbc:mysql://192.168.0.7:3306/myblog";// **指的是数据库名称
String username = "tuzongxun";// 数据库用户名
String password = "123456";// 数据库密码
Connection conn = null;
Statement stat = null;
ResultSet rs = null;
try {
Class.forName(driver);// 加载数据库驱动
conn = DriverManager.getConnection(url, username, password);// 连接Connection对象
stat = conn.createStatement();// 创建Statement对象
String sql = "select * from emlog_ad";
rs = stat.executeQuery(sql);// 执行sql语句返回结果集
while (rs.next()) {
System.out.println(rs.getInt("id"));
System.out.println(rs.getInt("status"));
System.out.println(rs.getInt("position"));
System.out.println(rs.getString("title"));
System.out.println(rs.getInt("weight"));
System.out.println(rs.getString("content"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
结果自然是正常连接的。
这下我就蒙圈了:用户名和密码一模一样,框架和之前的也几乎没有差别,难道是见鬼了?难道是我之前的文章有问题么?
可是,我每次发出去的,分明都是一而再再而三的验证过的,不该如此啊!
万般无奈之下,我清了tomcat缓存,我清了eclispe缓存,甚至我重启了eclipse,我重启了电脑。
然而,问题他依旧在那里静静的看着我,仿佛在说“啊哈,你找不到我,你找不到我!”
这下我有点从蒙圈进入抓狂的状态了,根据经验实在无法定位问题所在了,只好上网搜索。
经过一顿百度,答案是如此的千篇一律,不是说用户名密码错误的问题,就是说需要新建用户。
好吧,不管怎样,先试试再说。
于是,我重新创建了一个用户,重新启动了mysql。甚至由于之前写那个框架搭建时用的是mysql5.5,而我现在用的是mysql5.6,所以我又弄了个mysql5.5。
结果呢。。。有点不想说话!
该试的都试了,不该试的我也试了,怀疑人生模式正式开启。。。
于是,我开始漫无目的的一行行代码、一个个字符的开始了光标的漫长旅行。
令我意外的是,山重水复疑无路,柳暗花明又一村,问题竟然就这样突如其来的被窝寻到了踪迹!
在光标一个字符一个字符的移动中,我发现我的config.properties文件居然是这样的:
明眼人大概已经看到了问题所在,正是我的用户名和密码后边多出了两个空格,当我把这两个空格干掉之后,再次启动tomcat,那个异常终于乖乖的溜之大吉了!
如此没有技术含量的两个错,我已犯了多次,粗心大意犯的错,空格字符太坑人,说多了都是泪啊!
Access denied for user(这个几乎让我怀疑人生的异常)的更多相关文章
- MySql Access denied for user 'root'@'localhost' (using password:YES) 解决方案
关于昨天下午说的MySQL服务无法启动的问题,解决之后没有进入数据库,就直接关闭了电脑. 今早打开电脑,开始-运行 输入"mysql -uroot -pmyadmin"后出现以下错 ...
- phpmyadmin #1045 - Access denied for user 'root'@'localhost' (using password: NO)
phpmyadmin访问遇到1045问题 #1045 - Access denied for user 'root'@'localhost' (using password: NO) 解决办法 找到p ...
- Windows mysql提示:1045 access denied for user 'root'@'localhost' using password yes
Windows mysql提示:1045 access denied for user 'root'@'localhost' using password yes http://blog.csdn.n ...
- Laravel [1045] 解决方法 Access denied for user 'homestead'@'localhost'
这几天学习Laravel框架遇到了数据库方面的问题. PDOException in Connector.php line 55:SQLSTATE[HY000] [1045] Access denie ...
- Linux mysql 5.6: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
案例环境: 操作系统 :Red Hat Enterprise Linux Server release 5.7 (Tikanga) 64 bit 数据库版本 : Mysql 5.6.19 64 bit ...
- MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)的真正原因
在博客Linux mysql 5.6: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: N ...
- mac 安装mysql + 修改root用户密码 + 及报Access denied for user 'root'@'localhost' (using password:YES)解决办法
1.下载MySQL 到mysql的官网http://dev.mysql.com/downloads/mysql/然后在页面中会看到“MySQL Community Server”下方有一个“downl ...
- MySql access denied for user错误
MySql access denied for user错误 | 浏览:2812 | 更新:2014-11-27 11:16 MySql access denied for user错误 方法/步骤 ...
- 升级到macOS 10.12 mysqlb报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
系统升级到macOS 10.12后启动mysql后,在终端输入mysql 报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' ...
随机推荐
- 01_Linux安装
一.VMware创建一个虚拟机 下一步 .下一步 .下一步 ..前方高能 二.安装CentOS 6.7 next -> 选择 中文简体 -> 美式键盘,直接下一步 ,一直下一 ...
- Go笔记-标准库的介绍
[unsafe]包含了一些打破Go语言“类型安全”的命令,一般的程序中不会被使用,可用在C/C++程序的调用中 [syscall]底层的外部包,提供了操作系统底层调用的基本接口 [os/exec]提供 ...
- ffmpeg转码使用硬件加速
需求源于手机拍摄的视频,默认参数码率较大,拍摄的文件体积较大,不便于保存和转发.手机默认拍照的720P视频,默认码率达到4M,实际上转成1M就差不多了.FFmpeg默认的转码是使用软件解码,然后软件编 ...
- DG环境的日常巡检
DG环境的日常巡检 目录 1.DG环境的日常巡检4 1.1.主库环境检查4 1.1.1.主库实例启动状态检查4 1.1.2.主库启动模式检查4 1.1.3.主库DG环境的保护模式检查4 1.1.4.主 ...
- UOJ Round #15 [构造 | 计数 | 异或哈希 kmp]
UOJ Round #15 大部分题目没有AC,我只是水一下部分分的题解... 225[UR #15]奥林匹克五子棋 题意:在n*m的棋盘上构造k子棋的平局 题解: 玩一下发现k=1, k=2无解,然 ...
- HDU 3032 Nim or not Nim? [Multi-SG]
传送门 题意: nim游戏,多了一种操作:将一堆分成两堆 Multi-SG游戏规定,在符合拓扑原则的前提下,一个单一游戏的后继可以为多个单一游戏. 仍然可以使用$SG$函数,分成多个游戏的后继$SG$ ...
- BZOJ 1025: [SCOI2009]游戏 [置换群 DP]
传送门 题意:求$n$个数组成的排列变为升序有多少种不同的步数 步数就是循环长度的$lcm$..... 那么就是求$n$划分成一些数几种不同的$lcm$咯 然后我太弱了这种$DP$都想不出来.... ...
- IT连创业系列:年终回顾录!
一年不过一转眼,一光阴的青春又逝去了! 还有不到几天,就要进入新年快乐的祝福包围圈了. 在这归家之际,留文一篇,为这忙碌的一年创业留点回忆! IT连创业这一年走来: 大大小小的深坑,小小大大的困难,一 ...
- [Python Study Notes]CS架构远程访问获取信息--SERVER端v2.0
更新内容: 1.增加内存信息获取 2.增加电池信息获取 3.增加磁盘信息获取 4.重新布局窗体 5.增加窗体名称 6.增加连接成功之前,不可按压 ''''''''''''''''''''''''''' ...
- dedecms织梦判断当前页面是首页、栏目页还是文章页
根据全局变量$GLOBALS['_sys_globals']['curfile']的值来判断. 首页parview:列表页listview:文章页archives 应用示例: {dede:php}if ...