Customer is upgrading to MySQL 8.0.3 and would like support for it in Aqua Data Studio.
MySQL version 8 is to new at this juncture we will wait until next release until some issues have been fully tested and worked out with the community before implementing support in ADS.
Any word on when MySQL 8 will be supported? It has been officially released by Oracle now. I receive the following exception when attempting to connect to a MySQL 8 server.
I noticed that some of the data types of the fields in the INFORMATION_SCHEMA tables in MySQL 8 changed. I'm thinking the exception may be related to that. For example, I have an application that queries the INFORMATION_SCHEMA tables and found that the ORDINAL_POSITION column changed from BIGINT to an UNSIGNED INT which caused a similar error in my code.
java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920)
at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1074)
at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3590)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2531)
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:62)
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:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
at \\.\\.\\हिñçêČάй語简�?한\\.h⢋ᡃꃭ⢝.b(Unknown Source)
at \\.\\.\\हिñçêČάй語简�?한\\.nꊾ⢋⢐ꊧ6switch.id(Unknown Source)
at \\.\\.\\हिñçêČάй語简�?한\\.nꊾ⢋⢐ꊧ6switch.s(Unknown Source)
at \\.\\.\\हिñçêČάй語简�?한\\.nꊾ⢋⢐ꊧ6switch.getConnection(Unknown Source)
at \\.\\.\\हिñçêČάй語简�?한\\.nꊾ⢋⢐ꊧ6switch.getConnection(Unknown Source)
at \\.\\.\\हिñçêČάй語简�?한\\.mꆮꁖ̯ꌽbreak.dN(Unknown Source)
at \\.\\.\\हिñçêČάй語简�?한\\.Kᠼꇳᠴᛠfloatthrow$2.process(Unknown Source)
at com.common.ui.util.BackgroundThread.run(Unknown Source)
Caused by: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1019)
... 20 more
Hi Jon,
You can try downloading and placing the mysql 8.0.11 connector jar in C:\...\datastudio\lib\drivers folder. The following assumes you have Aqua Data Studio 18.5
You can give this a try. It seems to work ok for me but it has not been tested. Also, if you have older versions of MySQL, they might not connect with this driver. I am using a 18.0.11 server.
We are looking at adding support for MySQL 8 in a future release. We have to evaluate the code changes required to support this version and how it will affect backwards compatibility with older versions.
Hope that helps, Tom
Hi Jon,
You can try downloading and placing the mysql 8.0.11 connector jar in C:\...\datastudio\lib\drivers folder. The following assumes you have Aqua Data Studio 18.5
You can give this a try. It seems to work ok for me but it has not been tested. Also, if you have older versions of MySQL, they might not connect with this driver. I am using a 18.0.11 server.
We are looking at adding support for MySQL 8 in a future release. We have to evaluate the code changes required to support this version and how it will affect backwards compatibility with older versions.
Hope that helps, Tom
I tried this and the behavior was the same. Changing the driver seemed to have no effect.
Also, I just version ADS 19 and it gave me the following error.
I tried this and the behavior was the same. Changing the driver seemed to have no effect.
Also, I just version ADS 19 and it gave me the following error.
There are a couple other unrelated issues as well. Microsoft SmartScreen gives a warning about the installer. The installer also isn't signed. And if I remember correctly, previous versions of the installer would automatically popup a message box asking for admin permissions to be OKed. This time, I had to right click on it and run it as admin. The installer gave an error saying you have to be logged in as admin.
I'm surprised that you would release version 19, without support for MySQL 8. You have support for every other obscure database, but, not the current version of one of the most popular ones.
There are a couple other unrelated issues as well. Microsoft SmartScreen gives a warning about the installer. The installer also isn't signed. And if I remember correctly, previous versions of the installer would automatically popup a message box asking for admin permissions to be OKed. This time, I had to right click on it and run it as admin. The installer gave an error saying you have to be logged in as admin.
I'm surprised that you would release version 19, without support for MySQL 8. You have support for every other obscure database, but, not the current version of one of the most popular ones.
Hi Jon,
I am using ADS version 19 with version 8.0.11 MySQL server which is general availability. Looks like you want to use MySQL version 5.1.46 connector to connect to older versions of MySQL and MySQL 8. Follow the steps I provided above to replace the driver. This seems to work for me when using MySQL 8 and older MySQL versions.
Hi Jon,
I am using ADS version 19 with version 8.0.11 MySQL server which is general availability. Looks like you want to use MySQL version 5.1.46 connector to connect to older versions of MySQL and MySQL 8. Follow the steps I provided above to replace the driver. This seems to work for me when using MySQL 8 and older MySQL versions.
Hi Jon,
We were waiting for MySQL 8 to stabilize before we included it in ADS. MySQL 8 has some new features so we need to make code changes to ADS. We are evaluating those changes now.
Thanks, Tom
Hi Jon,
We were waiting for MySQL 8 to stabilize before we included it in ADS. MySQL 8 has some new features so we need to make code changes to ADS. We are evaluating those changes now.
Thanks, Tom
That seems to have worked. Or at least allowed me to connect. Thanks for your help.
That seems to have worked. Or at least allowed me to connect. Thanks for your help.
Issue #15480 |
New |
Completion |
No due date |
No fixed build |
No time estimate |
1 issue link |
relates to #15562
Issue #15562Add support for MySQL version 8.0 |
Any word on when MySQL 8 will be supported? It has been officially released by Oracle now. I receive the following exception when attempting to connect to a MySQL 8 server.
I noticed that some of the data types of the fields in the INFORMATION_SCHEMA tables in MySQL 8 changed. I'm thinking the exception may be related to that. For example, I have an application that queries the INFORMATION_SCHEMA tables and found that the ORDINAL_POSITION column changed from BIGINT to an UNSIGNED INT which caused a similar error in my code.
java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920)
at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1074)
at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3590)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2531)
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:62)
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:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
at \\.\\.\\हिñçêČάй語简�?한\\.h⢋ᡃꃭ⢝.b(Unknown Source)
at \\.\\.\\हिñçêČάй語简�?한\\.nꊾ⢋⢐ꊧ6switch.id(Unknown Source)
at \\.\\.\\हिñçêČάй語简�?한\\.nꊾ⢋⢐ꊧ6switch.s(Unknown Source)
at \\.\\.\\हिñçêČάй語简�?한\\.nꊾ⢋⢐ꊧ6switch.getConnection(Unknown Source)
at \\.\\.\\हिñçêČάй語简�?한\\.nꊾ⢋⢐ꊧ6switch.getConnection(Unknown Source)
at \\.\\.\\हिñçêČάй語简�?한\\.mꆮꁖ̯ꌽbreak.dN(Unknown Source)
at \\.\\.\\हिñçêČάй語简�?한\\.Kᠼꇳᠴᛠfloatthrow$2.process(Unknown Source)
at com.common.ui.util.BackgroundThread.run(Unknown Source)
Caused by: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1019)
... 20 more