mysql 客户端 交叉编译_【EVB-335X-II试用体验】之QT远程访问MySql数据库(交叉编译MySql QT客户端驱动程序及功能测试)...

源码如下:

#include "widget.h"

#include "ui_widget.h"

#include

#include

#include

#include

#include

#include

Widget::Widget(QWidget *parent) :

QWidget(parent),

ui(new Ui::Widget)

{

ui->setupUi(this);

QSqlDatabase db =QSqlDatabase::addDatabase("QMYSQL");

db.setHostName("192.168.1.102");              //远程主机IP地址

db.setDatabaseName("test_db1");         //通过mysql-workbench创建一个数据库

db.setUserName("root");

db.setPassword("sy31214");                   //根据你自己设置远程登陆的密码修改

if(!db.open())

QMessageBox::information(this,tr("worning"),tr("Opendatabase faiLED!"));

else

QMessageBox::information(this,tr("worning"),tr("Opendatabase succeed!"));

QSqlQueryquery;

query.exec("create table hello(id bigint not nullauto_increment,name varchar(255),age bigint,primary key (id))");

query.exec("insert intohello(name, age) values('xiaoxi', 18)");

query.exec("insert into hello(name, age) values('xiaonan',19)");

query.exec("insert into hello(name, age) values('xiaobei',20)");

query.exec("insert into hello(name, age) values('xiaodong',21)");

QSqlQueryModel *model = new QSqlQueryModel;

model->setQuery("select * from hello");

model->setHeaderData(0,Qt::Horizontal, "id");

model->setHeaderData(1, Qt::Horizontal, "name");

model->setHeaderData(2, Qt::Horizontal, "age");

QTableView *view = new QTableView(this);

view->resize(400,200);

view->setWindowTitle("QSqlQueryModel");

view->setModel(model);

view->show();

db.close();

}

程序编译结果如图所示:

993d5be4b93fad92a5cc6b25a09e80d9.gif

执行命令,将mysql_test拷贝到NFS共享目录:

cd mysql_test /nfsshare

7.将Mysql移植到EVB-335X-II

1)给开发板上电拷贝文件

开发板上电后,执行命令:

ifconfig eth0 192.168.1.112

mount -t nfs 192.168.1.102:/nfsshare /mnt -o nolock

2)拷贝QT MySql驱动以及Mysql客户端库文件到QT的plugins目录

cp /mnt/libsqlmysql.so /usr/lib/qt/plugins/sqldrivers

cp /mnt/libmysql*  /usr/lib/qt/plugins/sqldrivers

3)设置加载MySql库的路径环境变量

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/qt/plugins/sqldrivers

4)执行程序

cd /mnt

./mysql_test

运行效果如图所示:

993d5be4b93fad92a5cc6b25a09e80d9.gif

系统提示我们远程连接成功,并且打开数据库成功。

点击“OK”按钮后,QT软件开始建表、插入数据、查询数据、以及显示数据,效果如图所示:

993d5be4b93fad92a5cc6b25a09e80d9.gif

8.小结

经过前后9个小时努力,终于完成了在嵌入式arm板运行的QT+MySql程序,并且实现了EVB-335X-II对远程数据库服务器的访问,使得我们的EVB-335X-II真正的成为了车间级的数据中转服务器。在移植的过程中,出现了很多预想不到的错误,由于一些疏忽,走了不少弯路,不管怎么说,远程MySql上层应用程序可以运行了,从18点开始移植,到测试结束,已是凌晨3点31分,虽然很累、很困,但是移植成功的收获还是值得这些付出的,不多说了,明天早起赶火车,下篇报告,我们再继续。

699ba7046c51816a17b33a7caa85f179.png

0

评分

积分 +10

收起

理由

+ 10

您的帖子很精彩,期待您分享的下一个帖子!.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值