Access denied for user ‘root‘@‘localhost‘

spring4和hibernate4整合通过占位符读取properties文件时报java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES)

jdbc.properties文件内容如下:

jdbc.driverClassName=com.mysql.jdbc.Driver 
jdbc.url=jdbc:mysql://localhost:3306/spring 
jdbc.username=root
jdbc.password=****

beans.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop   
   		http://www.springframework.org/schema/aop/spring-aop.xsd">
        
    <context:property-placeholder location="classpath:jdbc.properties" />
     
	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
	     <property name="driverClassName" value="${jdbc.driverClassName}"/> 
	     <property name="url" value="${jdbc.url}"/> 
	     <property name="username" value="${jdbc.username}"/> 
	     <property name="password" value="${jdbc.password}"/>
  	</bean> 
	<bean id="userDao" class="dao.impl.UserDaoImpl">
		<property name="dataSource" ref="dataSource"></property>
	</bean>

	<bean id="userInterceptor" class="aop.UserInterceptor"></bean>
	<bean id="userService" class="service.UserService">
		<property name="userDao" ref="userDao"></property>
	</bean>

</beans>

不使用占位符时一点问题没有。问题出在哪呢?网上查了好多,都是让改密码,后来无意看到这一问题,链接如下:

http://stackoverflow.com/questions/9319387/mysql-access-denied-for-user-using-password-yes

在该链接中的答案里这样提到:Someone else checked out the file, and when committing it, some trailing whitespace characters got appended to the password. It seems that these aren‘t trimmed when spring reads the property file (reasonable, I guess).

我重新检查了下jdbc.properties文件,发现username的value即root后有一个空格,可能是不小心打上的,而spring读取时未进行trim,故出现这一异常。

解决方案:检查properties里的所有value,看后面是否有空格。有则去掉

时间: 2024-08-05 19:08:41

Access denied for user ‘root‘@‘localhost‘的相关文章

关于JavaEE项目连接数据库提示 Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES)的解决方案

最近这三天,都在解决如下的问题:我MyEclipse中的JavaEE工程,运行之后就提示Access denied for user 'root'@'localhost' (using password: YES),当我用一个Java文件连接MySQL数据库时,没有任何问题.于是我在网上找了一些解决方案: (1)让root给当前用户授予增删改查的权限:grant select,insert,update,delete on *.* to 用户名@"%" Identified by &q

#1045 - Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: NO)

如上所示,当我们修改数据库的密码之后,再次进入phpmyadmin的时候,就会产生这种错误#1045 - Access denied for user 'root'@'localhost' (using password: NO) .那这种错误产生的原因是什么呢?解释就是,密码修改后,新旧密码不一致产生的.改正过来其实也很简单,在phpmyadmin3.4.10.1文件夹下找到config.inc.php这个文件,然后找到里面$cfg['Servers'][$i]['password'] = '

Navicat安装后出现错误:1045 - Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES)

安装完MySQL和N之后,打开Navicat后出现如下错误: **********1045 - Access denied for user 'root'@'localhost' (using password: YES)********** (小插曲:记得不知道这是多少次安装MySQL了,以前用的是SQLyog,突然安装了一个Navicat,尽然出现错误,让自己小小的汗颜了一把!!!经过上网查资料,解决方法陈述下文) [问题所在]:未给root用户分配所有权限. [解决步骤]:例如:用户名:a

mac下,mysql5.7.18连接出错,错误信息为:Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES)

mac下,mysql5.7.18连接出错,错误信息为:Access denied for user 'root'@'localhost' (using password: YES)()里面的为shell中输入的命令,一定要输全包括:&等符号 第一步:苹果->系统偏好设置->最下面点MySQL,关闭mysql服务 第二步:进入终端输入(cd /usr/local/mysql/bin/)回车输入(sudo su)回车以获取管理员权限输入(./mysqld_safe --skip-grant

MYSQL问题解决方案:Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password:YES)

这两天在MyEclipse中开发Web项目时,连接MySQL数据库,出现问题:Access denied for user 'root'@'localhost' (using password:YES). 经查找资料发现是root帐户默认不开放远程访问权限,所以需要修改一下相关权限. 解决方案: 打开MySQL目录下的my.ini文件,在文件的最后添加一行"skip-grant-tables",保存并关闭文件.(WIN7默认安装,my.ini在C:\ProgramData\MySQL\

ERROR 1045 (28000): Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: NO)

在安装好的MySQL服务器上,配置了环境变量之后,发现用mysql无法登录,报如题的错误,实在没有办法,决定用安全模式对root用户修改密码: 首先在一个ssh窗口运行命令:mysqld_safe --user=mysql --skip-grant-tables --skip-networking& [[email protected] ~]# mysqld_safe --user=mysql --skip-grant-tables --skip-networking& 运行之后新打开一个

mysql提示:1045 access denied for user&#39;root&#39;@&#39;localhost&#39; using password yes

1.打开DOS进入mysql下bin目录(C:\Program Files\MySQL\MySQL Server 5.6\bin) 2.停止mysql服务,net stop  mysql 3.输入:mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server 5.6\my-default.ini" --console --skip-grant-tables 4.重新打开一个DOS窗口,进入mysql下bin目录,输入:mysql

Mac Mysql mysql_secure_installation Error: Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES)

mysql由brew安装, 期间好像自动更新了一次 然后再次执行mysql_secure_installation, 输入root密码后报错, 重装mysql还是不行 Error: Access denied for user 'root'@'localhost' (using password: YES) 原因是之前安装的mysql配置文件没有彻底清除 参照 http://stackoverflow.com/questions/4359131/brew-install-mysql-on-mac

windows: Access denied for user &#39;root&#39;@&#39;localhost&#39; .....(转自新浪:http://blog.sina.com.cn/s/blog_40aff6390100jeke.html)

WINDOWS-XP 系统 mysql-5.1.22-noinstall-win32 提示:access denied for user 'root'@'localhost' using password yes 前几天都好好的,今天开机上来提示上面的这个错误,重启 MySQL 还是不可以. 在网上搜索了好久,总算找到详细的操作方法了.为了以后不再浪费时间,把她重新整理放到 Blog 里. 注意我这里的环境是 WINDOWS-XP 系统,LINUX 系统下的操作没有验证过,情况不清楚. 1. 管

#1045 - Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: NO)的问题

问题描述: 在控制台shell下修改了root的密码,然后在http://localhost/phpmyadmin下无法登录了  报错:#1045 - Access denied for user 'root'@'localhost' (using password: YES)操作重现:  mysql -u root -p  ******  #以前的密码  use mysql ;  update user set password=PASSWORD('new_passwd') where use