在OSX上设置从Matlab到MySQL的JDBC连接

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (7)

我已经建立了MATLAB(2016b 64位)来与本地MySQL服务器进行交互。我按照说明在Matlab的prefdir位置创建了一个javaclasspath.txt文件,在那里我保存了mysql-connector-java-5.1.40-bin.jar位置。之后,我使用原生的Matlab数据库资源管理器应用程序来建立连接,在按照以下步骤后,Matlab在当前文件夹上创建了一个.mat文件(见图片):

如上所示,.mat文件包含一个包含所列输入的单元格数组。我的问题如下,现在我已经成功设置了我想要创建“conn = database()”变量的服务器。我怎样才能做到这一点?我已经在Stackoverflow上阅读了Matlab指南和本指南,但是当我执行时,我收到错误“无效连接” :

conn = database('Data_Science', 'root', '*****', 'com.mysql.jdbc.Driver', 'jdbc:mysql://localhost:3306/Data_Science?useSSL=false');


e = exec(conn,['create table BULKTEST (salary decimal, '...
   'player varchar(25), signed_date varchar(25), '...
   'team varchar(25))']);

上面的代码有问题吗?我写错了信息吗?第二部分(e)是来自Matlab网站的c / p。所以我的怀疑是关于康恩。

更新:当我尝试命令isoprene(conn)返回'0'。我仍然不明白为什么我可以通过数据库资源管理器正确连接,但不能通过conn命令。

更新:更多照片,我显示数据库和Matlab数据库资源管理器应用程序

提问于
用户回答回答于

尝试在最后使用&:conn = database('Data_Science','root','*****','com.mysql.jdbc.Driver','jdbc:mysql:// localhost:3306 / Data_Science? useSSL =假')

用户回答回答于

好的问题出在我的代码上,特别是'conn'命令。

当我使用这段代码时,不包括?useSSL = false:

conn = database('Data_Science', 'root', '*****', 'com.mysql.jdbc.Driver', 'jdbc:mysql://localhost:3306/Data_Science');

我收到了这个警告:

Fri Feb 10 13:48:03 GMT 2017 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.

所以我在线查看,解决方案是在conn结尾处包含?useSSL = false。实际上,这有效,因为我不再收到任何进一步的警告,但当我检查工作区上的conn时,有一行显示以下消息:

The connection property 'useSSL' only accepts values of the form: 'true',
 'false', 'yes' or 'no'. The value 'falseData_Science' is not in this set.

这是我以前从未注意到的,实际上这是导致连接错误的原因。所以我只是回到原来的conn,修改了我使用的?useSSL = false更改。现在,我仍然收到警告,但它确实有效。

扫码关注云+社区

领取腾讯云代金券