错误:java.sql.SQLException: Access denied for user 'xxx'@'localhost' (using password: YES)

原因是在spring_config.xml中使用阿里的连接池时,不能直接使用${username}这个命名,它会采用当前系统的账户名。

<context:property-placeholder location="classpath:jdbc.properties"/>
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${driver}" />
        <property name="url" value="${url}" />
        <property name="username" value="${username}" />
        <property name="password" value="${password}" />
    </bean>

应该采用其他命名传入${jdbc.username}

<context:property-placeholder location="classpath:jdbc.properties"/>
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${driver}" />
        <property name="url" value="${url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${password}" />
    </bean>

对应的jdbc.propertities

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/gxa
jdbc.username=root
password=123456

 同时需要注意的是使用阿里连接池时,property name="driverClassName" 必须采用这种命名,不然也会报错。

原文地址:https://www.cnblogs.com/Unlimited-Rain/p/12970785.html