I'm running MATLAB R2018a and are trying to connect it to my MySQL 8.0.11 server using the database toolbox. I'm using this page as a guide.
I've installed the Connector J 8.0 using the MySQL installer and added the file to the class path (as described). Runningjavaclasspath
gives me:
STATIC JAVA PATH
C:\Program Files\MATLAB\R2018a\java\patch
[.. removed many files]
C:\Program Files\MATLAB\R2018a\java\jar\zh_CN\webintegration_res.jar
C:\Program Files (x86)\MySQL\Connector J 8.0\mysql-connector-java-8.0.11.jar
DYNAMIC JAVA PATH
<empty>
So it seems correct. Then I try (as described here):
d = com.mysql.cj.jdbc.Driver;
urlValid = d.acceptsURL('jdbc:mysql://localhost:3306/[*removed*]');
props = java.util.Properties;
props.put('user',[*removed*]); props.put('password',[*removed]*);
con = d.connect('jdbc:mysql://localhost:3306/[*removed*]',props)
It tells me
Tue Aug 07 10:59:16 CEST 2018 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
con =
com.mysql.cj.jdbc.ConnectionImpl@ea27e34
So that all seems good. And:
con2 = database('[*removed*]', '[*removed*]', '[*removed*]', 'com.mysql.cj.jdbc.Driver', 'jdbc:mysql://localhost:3306/[*removed*]')
Also works correctly.
HOWEVER
If I try to connect to the database using the MATLAB's ($400/year) database toolbox, I get "Unable to find JDBC driver file on MATLAB Java class path"
Am I doing something wrong, or is this a bug? Does anyone know how to fix this?
According to this answer the versions should be compatible.