我已设置MATLAB(2016b 64位)与本地MySQL服务器进行交互。我按照说明进行操作,并在Matlab的prefdir
位置上创建了javaclasspath.txt文件,在其中保存了mysql-connector-java-5.1.40-bin.jar位置。
之后,我使用本机的Matlab数据库资源管理器应用程序建立了连接,在执行步骤之后,Matlab在当前文件夹上创建了一个.mat文件(参见图片):
如您所见,.mat文件包含具有列出的输入的单元格数组。
我的问题是,现在,我已经成功设置了要创建“ conn = database()”变量的服务器。我怎样才能做到这一点?我已经在Stackoverflow上阅读了Matlab guide和此guide,但是当我execute时出现错误“无效的连接”:
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。因此,我对conn表示怀疑。
更新:当我尝试命令isoprene(conn)返回'0'。我仍然不明白为什么我可以通过数据库浏览器而不是通过conn命令正确连接。
更新:我在其中显示数据库以及Matlab数据库浏览器应用程序的更多照片
最佳答案
好的,问题出在我的代码上,特别是'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更改。现在,我仍然收到警告,但是它可以工作。
关于mysql - 在osX上建立从Matlab到MySQL的JDBC连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42145822/