Java 松鼠客户端可以';t连接到MySQL实例:驱动程序错误?

Java 松鼠客户端可以';t连接到MySQL实例:驱动程序错误?,java,mysql,jdbc,cloudbees,squirrel-sql,Java,Mysql,Jdbc,Cloudbees,Squirrel Sql,我正在使用连接到CloudBees上托管的MySQL实例。我下载了我认为是的,并将其安装到Squirrel的lib目录下: ~/squirrel-sql-3.4.0/lib/mysql-connector-java-5.1.25-bin.jar 然后,我创建了一个具有以下属性的新DB别名(在Squirrel内部): Name: my_db Driver: MySQL Driver URL: jdbc:mysql://my-cloudbees-s3-instance.com:3306/my_db

我正在使用连接到CloudBees上托管的MySQL实例。我下载了我认为是的,并将其安装到Squirrel的
lib
目录下:

~/squirrel-sql-3.4.0/lib/mysql-connector-java-5.1.25-bin.jar

然后,我创建了一个具有以下属性的新DB别名(在Squirrel内部):

Name: my_db
Driver: MySQL Driver
URL: jdbc:mysql://my-cloudbees-s3-instance.com:3306/my_db
User Name: my_db_user
Password: *******
当我尝试连接到DB时,我从Squirrel的内置控制台获得以下堆栈跟踪/错误:

java.util.concurrent.ExecutionException: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user 'my_db_user'@'%' to database 'my_db'
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:232)
    at java.util.concurrent.FutureTask.get(FutureTask.java:91)
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.awaitConnection(OpenConnectionCommand.java:132)
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$100(OpenConnectionCommand.java:45)
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$2.run(OpenConnectionCommand.java:115)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user 'my_db_user'@'%' to database 'my_db'
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.executeConnect(OpenConnectionCommand.java:171)
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$000(OpenConnectionCommand.java:45)
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$1.run(OpenConnectionCommand.java:104)
... 6 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user 'my_db_user'@'%' to database 'my_db'
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.Util.getInstance(Util.java:386)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4187)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4119)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:927)
    at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1709)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1252)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2483)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2516)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2301)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:346)
    at net.sourceforge.squirrel_sql.fw.sql.SQLDriverManager.getConnection(SQLDriverManager.java:133)
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.executeConnect(OpenConnectionCommand.java:167)
... 8 more
java.util.concurrent.ExecutionException:java.lang.RuntimeException:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:my\u db\u user@“%”用户对数据库my\u db的访问被拒绝
位于java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:232)
位于java.util.concurrent.FutureTask.get(FutureTask.java:91)
位于net.sourceforge.squirrel\u sql.client.mainframe.action.OpenConnectionCommand.awaitConnection(OpenConnectionCommand.java:132)
位于net.sourceforge.squirrel\u sql.client.mainframe.action.OpenConnectionCommand.access$100(OpenConnectionCommand.java:45)
位于net.sourceforge.squirrel\u sql.client.mainframe.action.OpenConnectionCommand$2.run(OpenConnectionCommand.java:115)
位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
位于java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
位于java.util.concurrent.FutureTask.run(FutureTask.java:138)
位于java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
运行(Thread.java:662)
原因:java.lang.RuntimeException:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:拒绝用户“my_db_user”@“%”访问数据库“my_db”
位于net.sourceforge.squirrel\u sql.client.mainframe.action.OpenConnectionCommand.executeConnect(OpenConnectionCommand.java:171)
位于net.sourceforge.squirrel\u sql.client.mainframe.action.OpenConnectionCommand.access$000(OpenConnectionCommand.java:45)
位于net.sourceforge.squirrel\u sql.client.mainframe.action.OpenConnectionCommand$1.run(OpenConnectionCommand.java:104)
... 还有6个
由以下原因引起:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:拒绝用户“my_db_user”@“%”访问数据库“my_db”
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:513)
位于com.mysql.jdbc.Util.HandleneInstance(Util.java:411)
位于com.mysql.jdbc.Util.getInstance(Util.java:386)
位于com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054)
在com.mysql.jdbc.MysqlIO.checkErrorPacket上(MysqlIO.java:4187)
在com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4119)
在com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:927)上
在com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1709)上
位于com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1252)
位于com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2483)
位于com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2516)
位于com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2301)
位于com.mysql.jdbc.ConnectionImpl(ConnectionImpl.java:834)
位于com.mysql.jdbc.JDBC4Connection(JDBC4Connection.java:47)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:513)
位于com.mysql.jdbc.Util.HandleneInstance(Util.java:411)
位于com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416)
位于com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:346)
位于net.sourceforge.squirrel_sql.fw.sql.SQLDriverManager.getConnection(SQLDriverManager.java:133)
位于net.sourceforge.squirrel\u sql.client.mainframe.action.OpenConnectionCommand.executeConnect(OpenConnectionCommand.java:167)
... 8个以上
这是否与以下方面有关:

  • 松鼠,或者我如何配置它;或
  • 数据库/服务器(未正确配置等);或
  • 我的连接属性;或
  • MySQL/JDBC驱动程序(类型错误等);或
  • 还有别的吗
上面写着“访问被拒绝”,但我已经检查并重新检查了我的登录凭据,它们似乎完全有效。提前谢谢

重要更新:我刚刚下载并安装了MySQL Workbench,用完全相同的信息创建了一个新的存储连接,但仍然收到相同的错误消息:

无法使用用户my_db_user连接到mycloudbees-s3-instance.com:3306上的MySQL。拒绝用户“my_db_user”@“%”对数据库“my_db”的访问


对我来说,这表明MySQL服务器配置不正确,排除了Squirrel、我的连接属性和我为Squirrel安装的JDBC驱动程序……是吗

不知怎的,您的安装程序生成了以下用户名:
'my_db_user'@“%
,它应该是
my_db_user
。嗯,谢谢@jlordo(+1)-我注意到了这一点,但我认为这是典型的语法字符串淤泥,所以我没有想到这一点。所以我假设这是JDBC驱动程序中的一个bug?你能确认我下载了正确的驱动程序(类型等)用于我试图使用它的目的吗?再次感谢!我从来没有使用过squirrel,但是是的,mysql驱动程序就是要使用的…再次感谢@jlordo(+1)-请看一下我的更新:mysql Workbench出现了相同的错误。还有其他想法吗?你可以登录MySQL Workbenc吗