首页 新闻 赞助 找找看

部署服务器,报“Access denied for user 'root'@'localhost' (using password: YES)”。

0
悬赏园豆:30 [待解决问题]

一、在正常运行的服务器上tomcat,增加一个B项目,报“Access denied for user 'root'@'localhost' (using password: YES)”。
本地跑,同时连这服务器的数据库是没问题的,把代码放在服务器跑就报错。
二、tomcat原来跑的A项目是正常的,且本地跑B项目也是没有问题,所以jdbc.properties是没问题的。
三、
1、原以为是c3p0的连接池问题,但设置比较大还不行。
2、应该不是服务器的mysql问题,网上都说要进入mysql的安全模式,重新密码。但试过没有用。因为AB项目都是用同一套框架写法,在配置都一样。同一个mysql里面。
3、服务器环境是java1.8 tomcat8 mysql5.7 nginx1.14
四、代码

<!-- 数据源 -->
    <context:property-placeholder location="classpath:jdbc.properties"/>
    
    <bean id="pooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
        <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
        <property name="driverClass" value="${jdbc.driverClass}"></property>
        <property name="user"  value="${jdbc.user}"></property>
        <property name="password"  value="${jdbc.password}"></property>


        <!-- 关键配置 -->
 <!--初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
 <property name="initialPoolSize" value="${c3p0.initialPoolSize}"></property>
 <!--连接池中保留的最小连接数。Default: 2 -->
 <property name="minPoolSize" value="${c3p0.minPoolSize}"></property>
 <!--连接池中保留的最大连接数。Default: 15 -->
 <property name="maxPoolSize" value="${c3p0.maxPoolSize}"></property>
 <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
 <property name="acquireIncrement" value="${c3p0.acquireIncrement}"></property>

五、报错
DEBUG [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0] - An exception occurred while acquiring a poolable resource. Will retry.
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3536)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3468)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:917)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3974)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1282)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2142)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:773)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at sun.reflect.GeneratedConstructorAccessor33.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:352)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)

gan8281的主页 gan8281 | 初学一级 | 园豆:10
提问于:2019-01-25 19:18
< >
分享
所有回答(3)
0

都提示你账号密码不匹配了

初见(全栈成长中) | 园豆:208 (菜鸟二级) | 2019-01-26 10:02

但是我在本地跑,还是连这服务器的数据库,没问题。。就是把代码放上服务器就报错。

支持(0) 反对(0) gan8281 | 园豆:10 (初学一级) | 2019-01-26 10:50

@gan8281: 你服务器上的数据库密码确定和你本地数据库密码一致?

0

代码放服务器上,那么数据库连接的url修改了吗

随风行云 | 园豆:936 (小虾三级) | 2019-01-26 17:02

本地跑时候,也是连的数据库也是服务器,正常。

支持(0) 反对(0) gan8281 | 园豆:10 (初学一级) | 2019-01-26 18:00
0

我觉得先不要管你本地怎么样了。
在服务器上用这个用户连接mysql,看能不能连上。如果能连上,再尝试在应用里面用同样的用户连接mysql。

AYard | 园豆:436 (菜鸟二级) | 2019-01-26 17:42

都是用root账号连的。无论是本地跑还是服务器跑,jdbc都一样。。。用那个Navicat for MySQL连也是正常。

支持(0) 反对(0) gan8281 | 园豆:10 (初学一级) | 2019-01-26 18:01

@gan8281: 那多半是你的连接配置问题吧,再检查检查。

支持(0) 反对(0) AYard | 园豆:436 (菜鸟二级) | 2019-01-26 20:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册