资源描述:
《mysql-matlab 连接说明》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、有感于网上查到了大量相当有帮助的技术性文章,这里也把我前段时间实现的一个功能程序公布出来,供需者参考。功能简介:服务器R(remote)只负责网站的运行和访问,每天获得一批新的原始数据,服务器L(local)负责后台运算,自动定时从服务器R的mysql里读取数据,在L上经过matlab编写的算法程序运算后再远程将结果写回R的数据库以实现网站的更新。全程无人值守。(L负责后台运算,安装matlab;R负责网络访问,安装mysql)不同于网络上查到的实现方法,本程序全部在m文件里编写,不用php或c++做接口,宗旨就是用简单的方法实现简单的想法。(
2、以下假定suanfa.m子程序已经存在)1.编写import_data.m子程序,实现从mysql读取数据到matlab中.1)下载mysql的jdbc的java驱动,安装到*:ProgramFilesMATLAB71javajartoolbox路径下;2)此“路径文件名”添到*:ProgramFilesMATLAB71toolboxlocal下的classpath.txt文件中;3)设置mysql下的数据库名称为带有“mysql”后缀的,比如:abcmysql;4)服务器R的mysql下,输入“grantallon*.*t
3、ousername@"L的IP"Identifiedby"password",允许L远程访问;5)复制如下代码到import_data文件中functionMM=import_data();timeoutA=logintimeout(5)%Setmaximumtimeallowedforestablishingaconnection.connA=database('mysql','username','password','com.mysql.jdbc.Driver','jdbc:mysql://R的IP:3306/abc')ping(conn
4、A)%Checkthedatabasestatus.cursorA=exec(connA,'SELECTALLCONLUMA,CONLUMB,CONLUMCFROMtablename);setdbprefs('DataReturnFormat','numeric');%setnumericformatcursorA=fetch(cursorA);%Fetchallrowsofdata.MM=cursorA.Data;%Displaythedata,savethedatainMMclose(cursorA);%Closethecursorandt
5、heconnection.close(connA)其中username,password,LR的IP,数据库名称abc,tablename,sql语句都是要依实际修改的。2.编写export_data.m子程序,实现从matlab写回数据到mysql中:原理类似,(tablename2的表要事先建好u)复制以下程序:timeoutA=logintimeout(5)%Setmaximumtimeallowedforestablishingaconnection.connA=database('mysql','username','passwor
6、d','com.mysql.jdbc.Driver','jdbc:mysql://R的IP:3306/abc')ping(connA)%Checkthedatabasestatus.%deletetherecordsbeforeupdatingcursorA=exec(connA,'deletetablenameFROMtablename');Colnames={'COLUMNA','COLUMNB','rCOLUMNC'};%updatingfastinsert(connA,'tablename2',Colnames,newdata);clo
7、se(cursorA);close(connA);其中username,password,R的IP,数据库名称abc,tablename,sql语句都是要以实际情况修改的,newdata就是suanfa.m程序得到结果组成的矩阵,这些结果将写到数据库中tablename2的表中。3.编写主程序以调用这些子程序:4.编译m程序为exe程序:(注意主程序头部的也要加“function”呦,否则作为脚本文件不能编译)1)在matlab环境中配置编译器,输入mbuild-setup,依提示操作;2)输入mcc-mmain.msuanfa.mimport
8、_data.mexport_data.m生成与主程序同名的exe文件;3)设置windows任务计划,添加此exe文件便可以自动定时读取、计算、更新网