springmvc 连接MYSQL数据库报错

老街的小麻雀 2017-05-15 10:47:01
换了电脑和系统,由win7换成了 win10.项目是从另外一台电脑上面COPY过来的,原来的时候在win7上面运行是没问题的。现在的问题是 启动服务的时候没有问题,在应用里面用SQL语句访问数据库的时候就会报错。项目用的是 springmvc+mybatis。
在运行类似这种SQL语句的时候就会报错。(不只是下述语句才会报错,其他的访问数据库的语句也会报错。正常启动服务是没有问题的) tomcat 用的是7 JDK用的是1.7
<select id="getUserInfoByUserName" resultMap="userInfoMap">
SELECT id,
userName,
PASSWORD, real_name, rols_id,
id_card,sex, tel, addres,
create_by,
create_date, update_by,
update_date, remarks1, remarks2,email
FROM users where userName=#{userName}
</select>
报错信息如下
[com.alibaba.druid.pool.DruidDataSource]-create connection error, url: jdbc:mysql://localhost:3306/itemlibrary?useUnicode=true&characterEncoding=utf-8
java.sql.SQLException: Access denied for user 'root '@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3878)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3814)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:871)
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1694)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1215)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2255)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2286)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2085)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:795)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:44)
at sun.reflect.GeneratedConstructorAccessor18.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:400)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:327)
at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:148)
at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:211)
at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:142)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1377)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1431)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:1863)


config.properties文件配置如下:
#mysql version database druid setting
validationQuery=SELECT 1 from dual
jdbc.url=jdbc\:mysql\://localhost\:3306/itemlibrary?useUnicode\=true&characterEncoding\=utf-8
jdbc.username=root
jdbc.password=1234

spring-mybatis.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:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
">

<!-- 配置数据源 使用的是Druid数据源 -->
<bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />

<!-- 初始化连接大小 -->
<property name="initialSize" value="0" />
<!-- 连接池最大使用连接数量 -->
<property name="maxActive" value="20" />

<!-- 连接池最小空闲 -->
<property name="minIdle" value="0" />
<!-- 获取连接最大等待时间 -->
<property name="maxWait" value="60000" />
<property name="poolPreparedStatements" value="true" />
<property name="maxPoolPreparedStatementPerConnectionSize"
value="33" />
<!-- 用来检测有效sql -->
<property name="validationQuery" value="${validationQuery}" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<property name="testWhileIdle" value="true" />
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="25200000" />
<!-- 打开removeAbandoned功能 -->
<property name="removeAbandoned" value="true" />
<!-- 1800秒,也就是30分钟 -->
<property name="removeAbandonedTimeout" value="1800" />
<!-- 关闭abanded连接时输出错误日志 -->
<property name="logAbandoned" value="true" />
<!-- 监控数据库 -->
<property name="filters" value="mergeStat" />
</bean>

<!-- myBatis文件 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 -->

<property name="mapperLocations"
value="classpath:chen/library/springmvcdemo/mapping/*.xml" />
</bean>

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="chen.library.springmvcdemo.dao" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>

<!-- 配置事务管理器 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>


<!-- 拦截器方式配置事物 -->
<tx:advice id="transactionAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!--name:表示与事务属性关联的方法名(业务方法名),对切入点进行细化。通配符(*)可以用来指定一批关联到相同的事务属性的方法
propagation:表示事务传播行为,默认值是REQUIRED
isolation:表示事务隔离级别,默认值DEFAULT(数据库的隔离级别)
timeout:表示事务超时的时间(以秒为单位),默认值-1(永不超时)
read-only:表示事务是否只读, 默认值false不是只读的
rollback-for:表示将被触发进行回滚的 Exception(s);以逗号分开。
如:'com.foo.MyBusinessException,ServletException'
no-rollback-for:表示不被触发进行回滚的 Exception(s);以逗号分开。
如:'com.foo.MyBusinessException,ServletException'-->

<tx:method name="insert*" propagation="REQUIRED" isolation="DEFAULT"/>
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="get*" propagation="SUPPORTS" read-only="true" />
<tx:method name="find*" propagation="SUPPORTS" read-only="true" />
<tx:method name="select*" propagation="SUPPORTS" read-only="true" />
<tx:method name="testTransactionProxy*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<!-- Spring aop事务管理 -->
<aop:config>
<!--第一个*代表返回值,第二*代表service下子包,第三个*代表方法名,“(..)”代表方法参数 -->
<aop:pointcut id="transactionPointcut"
expression="execution(* chen.library.springmvcdemo.service..*Impl.*(..))" />
<aop:advisor pointcut-ref="transactionPointcut"
advice-ref="transactionAdvice" />
</aop:config>
</beans>


求大神给支个招。

...全文
844 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
老街的小麻雀 2017-05-26
  • 打赏
  • 举报
回复
我自己在连接密码那里多打了一个空格。差点没把自己坑死
我爱娃哈哈 2017-05-17
  • 打赏
  • 举报
回复
引用 19 楼 wq86019595 的回复:
[quote=引用 18 楼 u012934325 的回复:] [quote=引用 17 楼 u010223407 的回复:] [quote=引用 14 楼 wq86019595 的回复:] [quote=引用 13 楼 u010223407 的回复:] 用户问题,先用navicat登录下看看有没有问题~~~估计也有同样的问题
看上面我的回复。哥们[/quote] 我也遇到过这个问题 然后直接重新用navicat创建了一个用户[/quote] 简单方便有效,但是原理是什么[/quote] 这个没用。我的这个mysql貌似只能用root账户登录、别的用户名都不行[/quote] 你得用root创建用户,然后还得给权限
weixin_38765925 2017-05-16
  • 打赏
  • 举报
回复
密码为空。要配置
程序员阿鸿 2017-05-16
  • 打赏
  • 举报
回复
url有错,不需要转译
老街的小麻雀 2017-05-16
  • 打赏
  • 举报
回复
刚刚自己仔细的看了一下。是自己的用户名多了1个空格.外加用的myeclipse 有点缓存。所以一直以来就报错
podd 2017-05-16
  • 打赏
  • 举报
回复
先检查本地工具是否能连上数据库,再检查jdbc.url jdbc.url = jdbc:mysql://127.0.0.1:3306/xxxx?characterEncoding=UTF-8&allowMultiQueries=true
墨笙弘一 2017-05-16
  • 打赏
  • 举报
回复
一楼说的对,应该是你的password的问题
老街的小麻雀 2017-05-16
  • 打赏
  • 举报
回复
引用 18 楼 u012934325 的回复:
[quote=引用 17 楼 u010223407 的回复:] [quote=引用 14 楼 wq86019595 的回复:] [quote=引用 13 楼 u010223407 的回复:] 用户问题,先用navicat登录下看看有没有问题~~~估计也有同样的问题
看上面我的回复。哥们[/quote] 我也遇到过这个问题 然后直接重新用navicat创建了一个用户[/quote] 简单方便有效,但是原理是什么[/quote] 这个没用。我的这个mysql貌似只能用root账户登录、别的用户名都不行
Hansy Chen 2017-05-16
  • 打赏
  • 举报
回复
报错信息是你的密码错误,也有可能像楼上说的新装的数据库,密码为null还没有配置,在DOS里面用mysql命令测试你的登录情况!
墨笙弘一 2017-05-16
  • 打赏
  • 举报
回复
引用 17 楼 u010223407 的回复:
[quote=引用 14 楼 wq86019595 的回复:] [quote=引用 13 楼 u010223407 的回复:] 用户问题,先用navicat登录下看看有没有问题~~~估计也有同样的问题
看上面我的回复。哥们[/quote] 我也遇到过这个问题 然后直接重新用navicat创建了一个用户[/quote] 简单方便有效,但是原理是什么
我爱娃哈哈 2017-05-16
  • 打赏
  • 举报
回复
引用 14 楼 wq86019595 的回复:
[quote=引用 13 楼 u010223407 的回复:] 用户问题,先用navicat登录下看看有没有问题~~~估计也有同样的问题
看上面我的回复。哥们[/quote] 我也遇到过这个问题 然后直接重新用navicat创建了一个用户
老街的小麻雀 2017-05-16
  • 打赏
  • 举报
回复
引用 11 楼 lrx2011 的回复:
参考下 这两天在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\MySQL Server 5.6) 重启MySQL服务。 通过命令行进入MySQL的BIN目录,输入“mysql -u root -p”(不输入密码),回车即可进入数据库。(WIN7默认安装,BIN目录为:C:\Program Files\MySQL\MySQL Server 5.6\bin) 执行“use mysql;”,使用mysql数据库。 执行“update user set password=PASSWORD("123456") where user='root';”(修改root的密码) 打开MySQL目录下的my.ini文件,删除最后一行的“skip-grant-tables”,保存并关闭文件。 重启MySQL服务。 在命令行中输入“mysql -u root -p 123456”,即可成功连接数据库。 完成以上步骤,MyEclipse也可成功连接MySQL了。
这个照做了,还是不行
老街的小麻雀 2017-05-16
  • 打赏
  • 举报
回复
引用 12 楼 ScottJane 的回复:
jdbc:mysql://localhost:3306/blog?characterEncoding=utf8&useSSL=true类似与这种,为什么你的里面出现\=,\:,这种转义
看上面回复。 已经改了还是不行 jdbc.url=jdbc:mysql://127.0.0.1:3306/itemlibrary
老街的小麻雀 2017-05-16
  • 打赏
  • 举报
回复
引用 13 楼 u010223407 的回复:
用户问题,先用navicat登录下看看有没有问题~~~估计也有同样的问题
看上面我的回复。哥们
我爱娃哈哈 2017-05-16
  • 打赏
  • 举报
回复
用户问题,先用navicat登录下看看有没有问题~~~估计也有同样的问题
ScottJane 2017-05-16
  • 打赏
  • 举报
回复
jdbc:mysql://localhost:3306/blog?characterEncoding=utf8&useSSL=true类似与这种,为什么你的里面出现\=,\:,这种转义
podd 2017-05-16
  • 打赏
  • 举报
回复
参考下 这两天在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\MySQL Server 5.6) 重启MySQL服务。 通过命令行进入MySQL的BIN目录,输入“mysql -u root -p”(不输入密码),回车即可进入数据库。(WIN7默认安装,BIN目录为:C:\Program Files\MySQL\MySQL Server 5.6\bin) 执行“use mysql;”,使用mysql数据库。 执行“update user set password=PASSWORD("123456") where user='root';”(修改root的密码) 打开MySQL目录下的my.ini文件,删除最后一行的“skip-grant-tables”,保存并关闭文件。 重启MySQL服务。 在命令行中输入“mysql -u root -p 123456”,即可成功连接数据库。 完成以上步骤,MyEclipse也可成功连接MySQL了。
老街的小麻雀 2017-05-16
  • 打赏
  • 举报
回复
引用 3 楼 shayboke 的回复:
报错信息是你的密码错误,也有可能像楼上说的新装的数据库,密码为null还没有配置,在DOS里面用mysql命令测试你的登录情况!
jdbc.url=jdbc\:mysql\://localhost\:3306/itemlibrary?useUnicode\=true&characterEncoding\=utf-8 这个 已经 换成了 不转义的还是不行。 密码的话用 navicat工具登录是没有问题的
老街的小麻雀 2017-05-16
  • 打赏
  • 举报
回复
引用 8 楼 ScottJane 的回复:
java.sql.SQLException: Access denied for user 'root '@'localhost' (using password: YES)这句话是关键,是数据库本身的原因,你可以用sqlyog试着登录一下,也会报这个错,1楼说的很有道理。先把数据库弄通!
jdbc.url=jdbc\:mysql\://localhost\:3306/itemlibrary?useUnicode\=true&characterEncoding\=utf-8 这个 已经 换成了 不转义的还是不行。 密码的话用 navicat工具登录是没有问题的
ScottJane 2017-05-16
  • 打赏
  • 举报
回复
java.sql.SQLException: Access denied for user 'root '@'localhost' (using password: YES)这句话是关键,是数据库本身的原因,你可以用sqlyog试着登录一下,也会报这个错,1楼说的很有道理。先把数据库弄通!
加载更多回复(2)
基于SpringMVC+Spring+MyBatis开发的个人博客网站-毕业设计.zip 一、关于项目 该博客是基于SSM实现的个人博客系统,适合初学SSM和个人博客制作的同学学习。主要技术架构包括Maven、SpringMVC、Spring、MyBatis、Thymeleaf、Redis等。前端采用Bootstarp和Semantic UI。 二、使用步骤 Fork项目 fork或者下载项目到本地(建议先fork到自己仓库,在通过码云导入仓库下载,实测下载速度可以)。完整项目源码,可以使用IDEA导入。数据库文件请先创建数据库,然后以运行sql文件方式导入 导入数据库 新建数据库blog,导入数据库blog.sql。注意,数据库的编码和排序规则是utf-8和utf-8_general_ci。数据库默认用户名 root,密码 123456 启动redis服务,并在redis.properties配置你的redis 修改项目中的数据库连接信息 修改 db.properties 文件,该文件很容易找到,在 src/main/resources 中。里面有 MySQL 数据库连接信息,请确保已安装和启动 MySQL。注意修改数据库地址、表名、用户名和密码。 db.properties 文件中databasePath表示每周日进行数据库备份的路径,可自行修改 后台sql文件中管理员账户为admin,密码为:111111 三、使用注意 开发工具的选择 请使用 IntelliJ IDEA, 尽量不要用 Eclipse/MyEclipse。后者可能要折腾一会儿 确保你安装了 Maven(如果maven加载pom报错,发现不是自己配置的maven,请到setting中修改成自己的maven仓库) 本项目有使用到redis,所以运行项目前先启动redis服务,并在redis.properties配置你的redis 请给你的IDE安装Lombok插件 实体类中多次使用到 @Data 注解,请确保你的 IDE 安装了 Lombok 插件,否则找不到 getter/setter 方法 数据库乱码,在MySQL安装路径,比如(E:\MySQL\MySQL Server 5.5)下找到my.ini文件进入编辑,修改这两处地方为utf8,默认是拉丁文 character-set-server=utf8 default-character-set=utf8 本项目使用到的mail服务可在mail.properties中配置,不配置的话不影响整体,只是使用不了邮件服务。 本项目原本使用的是阿里云oss服务,现已修改成图片上传到本地服务器,如果需要可以在db.properties中进行阿里云配置 二、效果预览 预览地址:https://islizx.cn 前台效果图就不展示了,可前往网站浏览 介绍几张后台的页面 后台首页 DashBoard 文章列表 编辑文章(MarkDown编辑器) 文章类型管理 页面管理(可以自定义页面,申请友链和留言板即为自定义页面) 公告管理 附件管理(点击附件可以查看详细信息以及删除操作) 评论管理(管理员回复回收站和待审核的评论后直接通过审核并发送邮件给评论者) 轮播图管理(即首页的轮播图,轮播图可另外链接到其它页面,比如文章或公告) 小工具管理(即首页右侧的bar) 友链管理 日志管理

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧