MySQL 8 Support

Four Stars

MySQL 8 Support

Dear Community,

 

For test purposes we recently updated our MySQL Database to MySQL 8. 
Currently I have trouble connecting the new database and updating my existing jobs.

 

I tested with tos 6.5.1 as well as with 7.0.1. In both versions there is no native MySQL 8 support, yet. 

Using the built in MySQL 5 connector, it's the same error others got as well: (https://community.talend.com/.../Connection-Failure-Talend-6-5-to-MySQL-8-0/m-p/121480)

Verbindung fehlgeschlagen. Sie müssen die Datenbankeinstellungen ändern.
  java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.
      at org.talend.core.model.metadata.builder.database.JDBCDriverLoader.getConnection(JDBCDriverLoader.java:195)
      at org.talend.core.model.metadata.builder.database.ExtractMetaDataUtils.connect(ExtractMetaDataUtils.java:1106)
      at org.talend.core.model.metadata.builder.database.ExtractMetaDataFromDataBase.testConnection(ExtractMetaDataFromDataBase.java:316)
      at org.talend.metadata.managment.repository.ManagerConnection.check(ManagerConnection.java:289)
      at org.talend.repository.ui.wizards.metadata.connection.database.DatabaseForm$62.runWithCancel(DatabaseForm.java:3983)
      at org.talend.repository.ui.wizards.metadata.connection.database.DatabaseForm$62.runWithCancel(DatabaseForm.java:1)
      at org.talend.repository.ui.dialog.AProgressMonitorDialogWithCancel$1.runnableWithCancel(AProgressMonitorDialogWithCancel.java:77)
      at org.talend.repository.ui.dialog.AProgressMonitorDialogWithCancel$ARunnableWithProgressCancel$1.call(AProgressMonitorDialogWithCancel.java:161)
      at java.util.concurrent.FutureTask.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
  Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.
      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:409)
      at com.mysql.jdbc.Util.getInstance(Util.java:384)
      at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
      at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
      at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:973)
      at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:918)
      at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2588)
      at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2321)
      at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:832)
      at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
      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:409)
      at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:417)
      at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:344)
      at org.talend.core.model.metadata.builder.database.DriverShim.connect(DriverShim.java:41)
      at org.talend.core.model.metadata.builder.database.JDBCDriverLoader.getConnection(JDBCDriverLoader.java:186)
      ... 9 more
  Caused by: java.lang.NullPointerException
      at com.mysql.jdbc.ConnectionImpl.getServerCharacterEncoding(ConnectionImpl.java:3307)
      at com.mysql.jdbc.MysqlIO.sendConnectionAttributes(MysqlIO.java:1985)
      at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1911)
      at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1288)
      at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2506)
      at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2539)
      ... 21 more

 

So I tried to find a solution, here are the results of my research:
MySQL 8 is supported since Connector/J 5.1.41 (https://bugs.mysql.com/bug.php?id=86221)

But TOS 6.5.1 & 7.0.1 both use mysql-connector-java-5.1.30
Connector/J 8.0 is not available in TOS.

Next I tried to add the new Connector/J 8.0 jar to Talend, but it didn't work at all. For me it's still not clear how to update the Talend dependencies for the MySQL components. Is there a suitable way to do so?
I tried everything mentioned in those threads, no success:
.../resolved-Impossible-to-download-mysql-jdbc-driver-jar-in-TOS-DI/m-p/64087
.../Updating-the-mysql-connector-jar-file-to-be-used/td-p/81776

https://help.talend.com/reader/f7Em9WV_cPm2RRywucSN0Q/Gg2kxDcFrne6sKCzcBd27Q

 

After a while I at least was able to connect to the database with JDBC as DB type. Here it was possible to select the external Connector/J 8.0 jar file. (It was imported afterwards)
jdbc_connection.PNG

This connection works under tos 7.0.1 but has trouble with the mysql mapping in tos 6.5.1.
After a few tests I decided to rather not rebuild all my jobs with the JDBC components. There are to many possible errors as well as different behaviour of the jdbc-components.

At least the jar file is listed now within the modules (in tos 7.0.1):
mysql_connector_java_8.PNG


My question is, has anybody similar experiences or a solution how to edit the  jar-dependencies of talend and the mysql components?
Does Talend plan to support the native MySQL 8 connection in any future release?


I'm looking forward to your thoughts and input.
Best regards

Moderator

Re: MySQL 8 Support

Hello,

Could you please create a new feature jira issue on talend bug tracker?

Best regards

Sabrina

--
Don't forget to give kudos when a reply is helpful and click Accept the solution when you think you're good with it.
Four Stars

Re: MySQL 8 Support

Moderator

Re: MySQL 8 Support

Hello,

Feel free to vote for this jira issue.

Best regards

Sabrina

--
Don't forget to give kudos when a reply is helpful and click Accept the solution when you think you're good with it.
One Star

Re: MySQL 8 Support

Hi,

 

i had the same error and the Solution for me was to add the following parameters to the mysql Server Config:

default-authentication-plugin=mysql_native_password
collation-server = latin1_german1_ci
character-set-server = latin1