今日问题:
java.sql.SQLException: Access denied for user 'mysql'@'10.141.120.142' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3976)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3912)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:871)
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1714)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1224)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2190)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2221)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2016)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:776)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at TestJdbc.main(TestJdbc.java:13)
背景:连接远程数据库,java程序连接报错如上
- 使用客户端工具sqldeveloper(导过jar包,所以可以连接mysql)可以成功连接,使用navicate可以连接
- jdbc连接本地没有问题,连接远程数据库报错如上
- 使用cmd编译运行和使用ide结果一样
试用网上解决办法:
- 远程数据库权限:本地客户端工具可以连接,所以认为数据库权限没问题;再次确认远程数据库没有限制ip,且用户名密码无误;认为不是数据库权限问题
- 本地编译环境配置:使用cmd与eclipse结果一致,认为不是运行环境问题
- 程序编写问题:同一个程序访问本地数据库成功,认为不是程序编写问题
所以说啥啥都没有问题?所以这是鬼畜嘛?
-
mysql驱动版本:两个都试了
-
mysql-connector-java-5.1.47.jar
mysql-connector-java-8.0.17.jar
本地mysql版本:
- mysql-8.0.17-win64 远程mysql版本:
- mysql5.6(文档标注,不知是否有过更新)
目前:将开发所需关联数据导到本地数据库,暂时不影响开发进度,该问题尚未解决
当前未解决,待更