2017-02-09 5 views
1

Я установил MATLAB (2016b 64-разрядный) для взаимодействия с локальным сервером MySQL. Я выполнил инструкции и создал файл javaclasspath.txt на сайте Matlab prefdir, где я сохранил местоположение mysql-connector-java-5.1.40-bin.jar. После этого я использовал родной Matlab Database Explorer App настроить соединение, в котором после выполнения Matlab созданный файл .mat на текущей папке (смотри рисунок):Настроить соединение JDBC от Matlab к MySQL на osX

enter image description here

Как вы можете видеть над файлом .mat содержит массив ячеек с указанными входами. Мой вопрос заключается в следующем, теперь, когда я успешно настроил сервер, я хочу создать переменную «conn = database()». Как я могу это сделать? Я прочитал Matlab guide и это guide на Stackoverflow, но я получаю сообщение об ошибке «Invalid соединение», когда я 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) является c/p с сайта Matlab. Поэтому мои сомнения касаются подсознания.

UPDATE: Когда я пытаюсь выполнить команду isoprene (conn), возвращается '0'. Я до сих пор не понимаю, почему я могу правильно подключиться через Database Explorer, но не через команду conn.

UPDATE: Больше фото, где я показываю базу данных плюс базы данных Matlab Проводник App

enter image description here

enter image description here

enter image description here

+0

Вы пытались подключиться к БД из другого места? например MySQL Workbench на том же компьютере Matlab. Кроме того, существует ли база данных Data_Science? – Alfabravo

+0

Да, я создал локальную базу данных с именем Data_Science. Я обновил информацию, пожалуйста, посмотрите. Я действительно не знаю, что делать здесь. – Jespar

+0

Попробуйте 'database (host, user, pwd)' only ... – Alfabravo

ответ

0

Ok проблема была с моим кодом, в частности, с " conn ".

Когда я использовал этот код, без включая UseSSL = ложь:

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. 

Я посмотрел в Интернете и решение должно было включать в себя 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. 

который я никогда не видал, а на самом деле это то, что было вызывая ошибку соединения. Поэтому я просто отменил исходное соединение, внеся изменения в: useSSL = false change, которое я сделал. Теперь я все еще получаю предупреждение, но он работает.