Access denied for user 'root' @ 'localhost' (using password :YES),这是一个很常见的问题,尤其是对于
java初学者。根据错误提示:用户“root”访问被拒绝,也就是说没有连上数据库。
连接数据库失败,一般首先我们需要检查的就是数据库是否连接错误。查看jdbc.properties文件:
jdbc.url = jdbc:mysql:///sshshop //数据库名称
jdbc.user = root //用户名
jdbc.password =123456 //密码
如果数据库连接配置无误,则可能是因为用户权限低,被限制连接到本数据库。那么我们就可以给该用户赋予访
问的权限:
//grant 权限 on 数据库.表 to 用户 @ 访问方式 identified by 密码</span>
grant all on mysql.* to 'root'@'localhost' identified by '123456'
===================================================================================================================================
// 3.打开连接
xhr.open("GET","${pageContext.request.contextPath}/user_findByName.action?time="+new Date().getTime()+"&username="+username,true);
上述链接执行后抛出如下异常:
UnexpectedException caught setting 'time' on 'class cn.itcast.user.action.UserAction:Error setting expression
'time' with value ['1443837090852', ]
new Date()本为时间戳,主要是为了处理缓存带来的一些不良影响,但是这里却因为没有setter{}方法即没有实体
类定义该属性而抛出异常。
其实,上面的两个提示页面都是同一个原因造成的。只需在Struts配置文件中将 struts.devMode 定义为
false 则将会关闭该开发环境的提示信息。