第八天:gec6818arm开发板和Ubuntu中安装并且编译移植mysql驱动连接QT执行程序

一、Ubuntu18.04中安装并且编译移植mysql驱动程序连接qt执行程序

1 、安装Mysql

sudo apt-get install mysql-serverapt-get isntall mysql-clientsudo apt-get install libmysqlclient-d

2、查看是否安装成功,即查看MySQL版本

mysql --version       

3、MySQL启动与关闭命令

service mysql start  # 启动
service mysql stop  # 关闭

4、设置用户和密码

(1)先输入以下命令

cd /etc/mysql
sudo cat debian.cnf

(2)你会得到以下类似结果
在这里插入图片描述
(3)根据user 和 password输出结果, 编辑命令 mysql -u( u s e r ) − p (user) -p(user)−p(password),不用写括号,括号是方便看

mysql -udebian-sys-maint -p2STJ4ZfRtNhqe4Aw    
#最好是复制过来以免出错,不要把 -u  -p 忽略掉,且u,p后面无空格

(4)至此 已经进入到了MySQL系统中了

5、改密码
依次输入以下数据库语句(也可以全部复制直接输入运行)

show databases;
use mysql;
update user set authentication_string=PASSWORD('自己的密码') where user='root';
update user set plugin="mysql_native_password"; 
flush privileges;
quit;

6、登录

service mysql stop  # 关闭
service mysql start  # 启动
mysql -uroot -p密码
或者
mysql -uroot -p #回车
再输入密码

如果现在连接mysql会报错,没有mysql驱动如下类似报错:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
db open err: “Driver not loaded Driver not loaded”

7.编译移植mysql驱动(这一过程究极复杂,建议参考以下其他博客结合参照,请注意,如果你是按照我的博客一步一步安装的,即QT版本是5.9,则有快速简单方法,直接看第8步)

(1)保险起见,再次执行以下命令安装一遍libmysqlclient-dev

sudo apt-get install libmysqlclient-dev

(2)进入QT安装目录的源码目录(如果安装 时没有选择源码,重新安装下),找到MySql驱动源码目录
如:/home/csgec/Qt5.9.1/5.9.1/Src/qtbase/src/plugins/sqldrivers/mysql

(3)在上述mysql目录下执行qmake命令,记住qmake命令路径是否和你一样正确,生成Makefile

/home/csgec/Qt5.9.1/5.9.1/gcc_64/bin/qmake “INCLUDEPATH+=/usr/include/mysql” “LIBS+=-L/usr/lib/x86_64-linux-gnu/ -lmysqlclient” mysql.pro

注:如果出错:
Project ERROR: Library ‘mysql’ is not defined.
则打开mysql.pro文件注释掉QMAKE_USE +=mysql这行
如果出错:
qtsqldrivers-config.pri没找到
则下载QT5.9.1的源码包,到相应目录拷贝过来就可以。(安装包中居然没有这个文件,但源码包中有)

(4)分别执行以下命令

cd  /home/csgec/Tools/qt-everywhere-opensource-src-5.9.1/qtbase/src/plugins/sqldrivers
cp qtsqldrivers-config.pri /home/csgec/Qt5.9.1/5.9.1/Src/qtbase/src/plugins/sqldrivers
make
make install

(5)生成的库所在的目录: /home/csgec/Tools/qt-everywhere-opensource-src-5.9.1/qtbase/plugins/sqldrivers/

把libqsqlmysql.so放到qt安装目录/plugins/sqldrivers/里面即可

8.编译移植mysql驱动简单方法
我提供了已经移植编译好的驱动文件,大家点击下载放在相应的目录即可

自此MySQL安装完成,自己可以在Ubuntu中编写qt程序直接连接mysql了

二、gec6818arm开发板中安装并且编译移植mysql驱动程序连接qt执行程序

快速方法:移植先看:
当前文件夹都是我移植好的库和源码包,后面移植生成的库都放在了当前文件夹下,其中mysql-arm.tar.gz 是 我已经移植好的mysql在arm平台下的源码包,
qt-everywhere-opensource-src-5.9.1.tar.gz是QT的官方源码包(用于后面我们移植QT-mysql)

不想移植的看这:
-》在开发板的QT库的目录下/opt/EMqt5.9-gec/plugins 创建mkdir sqldrivers
-》拷贝libqsqlmysql.so到sqldrivers目录下
-》建立软连接 ln -s /opt/armqt5.5-gec/plugins/sqldrivers/libqsqlmysql.so /lib/libqsqlmysql.so
libqsqlmysql.so已经上传了,自己可以[点击下载](上面那个下载了就不用重复下载,放一起了)(https://download.csdn.net/download/xqmids99/88362750)
-》配置好mysql服务器支持远程连接(详见页底)

--------------------------------------------mysql完整版(包括客户端和服务器端)-----------------------------------------------------

1.将mysql-arm.tar.gz下载到开发板,解压mysql-arm.tar.gz到/usr/local目录下
–》tar -zxvf mysql-arm.tar.gz -C /usr/local

2.将mysql.server拷贝到开发板/etc/init.d/目录下

  1. 将my.conf文件拷贝到/etc目录下

不过因为我们粤嵌的开发板flash较小,我们选择只移植mysql的客户端,连接pc端的mysql

—————————————————------- C语言 客户端版————————————————————————————
(具体移植方法见http://blog.csdn.net/liangzhuangdongtou/article/details/51782557–》》》可能会有所出入,遇到问题自己解决一下呗)

1.拷贝libmysqlclient.so.16.0.0 到开发板/lib目录下,并建立软连接,命令如下
ln -s libmysqlclient.so.16.0.0 libmysqlclient.so.16
ln -s libmysqlclient.so.16.0.0 libmysqlclient.so

2.拷贝libmysqlclient_r.so.16.0.0文件到开发板/lib目录下,并建立软连接libmysqlclient_r.so.16
ln -s libmysqlclient_r.so.16.0.0 libmysqlclient_r.so.16
ln -s libmysqlclient_r.so.16.0.0 libmysqlclient_r.so

3.拷贝 mysql_client_test到开发板/bin目录下,并将权限修改为777
可用 mysql_client_test --help查看使用方法(mysql_client_test用于测试mysql连接,此步骤可以忽略)

使用方法:mysql_client_test -h ip–database=数据库名 -u 用户 -p密码1
——》mysql_client_test -h 192.168.1.17 --database=student -u root -p123456

–》连接成功会出现以下信息

#####################################
client_connect
#####################################

Establishing a connection to ‘192.168.1.17’ …OK
Connected to MySQL server version: 5.7.17-log (50717)

———————————————————QT客户端版————————————————————————

  1. QT使用mysql需要先编译好arm平台下的mysql(详见 http://blog.csdn.net/liangzhuangdongtou/article/details/51782557)

    -》过程有些麻烦

    赶时间的话可选择以下方案
    将我移植好的源码包 mysql-arm.tar.gz 解压放到/usr/local目录下
    -》tar -zxvf /mnt/hgfs/share/mysql-arm.tar.gz -C /usr/local

上面的完成后,接下来需要编译对应ARM平台的QT的mysql驱动(当然需要先移植好QT到开发板,还没有移植的同学看下之前的笔记咯)

(由于我们已经移植好的粤嵌qt库没有支持mysql, 此时我们需要编译 QT-mysql,)

a)解压源码包tar -zxvf qt-everywhere-opensource-src-5.5.0.tar.gz -C /opt
tips:QT源码包每一级都会有.pro文件,所以我们可以单独编译我们所需要的

b)进入解压后的源码包目录
1)cd /opt/qt-everywhere-opensource-src-5.5.0/qtbase/src/plugins/sqldrivers/mysql
2)执行/opt/armqt5.5-gec/bin/qmake “INCLUDEPATH+=/usr/local/mysql/include/mysql” “LIBS+=-L/usr/local/mysql/lib/mysql -lmysqlclient_r” mysql.pro

3)倘若一切步骤顺利的话,会出现以下信息rm -f libqsqlmysql.so

arm-linux-gnueabi-g++ -Wl,–no-undefined -Wl,-O1 -Wl,–enable-new-dtags -Wl,-rpath,/opt/armqt5.5-gec/lib -shared -o libqsqlmysql.so .obj/main.o .obj/qsql_mysql.o .obj/moc_qsql_mysql_p.o -L/home/tiydy/armlib/tslib/lib -L/home/tiydy/armlib/freetype/lib -L/home/tiydy/armlib/fontconfig/lib -L/usr/local/mysql/lib/mysql -lmysqlclient_r -L/opt/armqt5.5-gec/lib -lQt5Sql -lQt5Core -lpthread
mv -f libqsqlmysql.so …/…/…/…/plugins/sqldrivers/

    即在/opt/qt-everywhere-opensource-src-5.5.0/qtbase/plugins/sqldrivers目录下出现libqsqlmysql.so-》》》libqsqlmysql.so这个是我们想要的4)拷贝libsqlmysql.so到开发板上a) 我这里是/opt/armqt5.5-gec/plugins -》先创建mkdir sqldrivers-》拷贝libqsqlmysql.so到sqldrivers目录下-》建立软连接 ln -s /opt/armqt5.5-gec/plugins/sqldrivers/libqsqlmysql.so   /lib/libqsqlmysql.so到此就大功告成了!!!!5)最后下载mysql_test目录下的测试程序(mysql_test)到开发板测试一下吧

--------------------让mysql支持远程连接--------------------------------------------
方法1.在windows进入cmd命令行(当然也可以在图形界面上修改)
-》mysql -u root -p
-》use mysql;
-》update user set host = ‘%’ where user = ‘root’;
-》select host, user from user;

方法2:有兴趣自己找下吧!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/84690.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

有了Spring为什么还需要SpringBoot呢

目录 一、Spring缺点分析 二、什么是Spring Boot 三、Spring Boot的核心功能 3.1 起步依赖 3.2 自动装配 一、Spring缺点分析 1. 配置文件和依赖太多了!!! spring是一个非常优秀的轻量级框架,以IOC(控制反转&…

@DateTimeFormat 和 @JsonFormat 的详细研究

关于这两个时间转化注解,先说结论 一、介绍 1、DateTimeFormat DateTimeFormat 并不会根据得到其属性 pattern 把前端传入的数据转换成自己想要的格式,而是将前端的String类型数据封装到Date类型;其次它的 pattern 属性是用来规范前端传入…

python每日一题(模拟用户登录验证)

1、题目 预先设定正确用户名与密码,用来验证用户是否登录成功。 第一次: ① 输入用户名与密码,如果用户名与密码正确,则提示登录成功; ② 如果用户名错误(不管密码是否正确),则需要重…

TOGAF架构开发方法—初步阶段

本章描述了满足新企业体系结构业务指令所需的准备和启动活动,包括组织特定体系结构框架的定义和原则的定义。 一、目标 初步阶段的目标是: 确定组织所需的体系结构功能: 审查进行企业架构的组织背景确定受体系结构功能影响的企业组织的元素并确定其范围确定与架构功能相交的…

10分钟设置免费海外远程桌面

前言 本教程将向您介绍如何使用 Amazon Lightsail 服务的免费套餐轻松搭建属于您的远程桌面。依托于 Amazon 全球可用区,您可以在世界各地搭建符合您配置需求的远程桌面。 本教程需要先拥有亚马逊云科技海外账户。现在注册亚马逊云科技账户可以享受12个月免费套餐…

北工大汇编——综合题(2)

题目要求 编写一个比赛得分程序。共有7 个评委,按百分制打分,计分 原则是去掉一个最高分和一个最低分,求平均值。要求: 评委的打分以十进制从键盘输入。成绩以十进制给出,并保留 1位小数。输入输出时屏幕上要有相应提…

基于海康Ehome/ISUP接入到LiveNVR实现海康摄像头、录像机视频统一汇聚,做到物联网无插件直播回放和控制

LiveNVR支持海康NVR摄像头通EHOME接入ISUP接入LiveNVR分发视频流或是转GB28181 1、海康 ISUP 接入配置2、海康设备接入2.1、海康EHOME接入配置示例2.2、海康ISUP接入配置示例 3、通道配置3.1、直播流接入类型 海康ISUP3.2、海康 ISUP 设备ID3.3、启用保存3.4、接入成功 4、相关…

代码随想录算法训练营第二天(C) | 977.有序数组的平方 209.长度最小的子数组 59.螺旋矩阵

文章目录 前言一、977.有序数组的平方二、209.长度最小的子数组三、59.螺旋矩阵总结 前言 java版: 代码随想录算法训练营第二天 | 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵_愚者__的博客-CSDN博客 一、977.有序数组的平方 …

python实现命令tree的效果

把所有的文档都传到了git上,但是内容过多找起来不方便,突发奇想如果能在readme中,递归列出所有文件同时添加上对应的地址,这样只需要搜索到对应的文件点击就能跳转过去了… 列出文件总得有个显示格式,所以就按照tree的来了… 用python实现命令tree的效果 首先,这是tree的效果…

坐标休斯顿,TDengine 受邀参与第九届石油天然气数字化大会

美国中部时间 9 月 14 日至 15 日,第九届石油天然气数字化大会在美国德克萨斯州-休斯顿-希尔顿美洲酒店举办。本次大会汇聚了数百名全球石油天然气技术高管及众多极具创新性的数据技术方案商,组织了上百场硬核演讲,技术专家与行业从业者共聚一…

【unity小技巧】Unity 存储存档保存——PlayerPrefs、JsonUtility和MySQL数据库的使用

文章目录 前言PlayerPrefs一、基本介绍二、Demo三、优缺点 JsonUtility一、基本使用二、Demo三、优缺点 Mysql(扩展)完结 前言 游戏存档不言而喻,是游戏设计中的重要元素,可以提高游戏的可玩性,为玩家提供更多的自由和…

DEM格式转换:转换NSDTF-DEM国标数据格式为通用格式,使用ArcGIS工具转换NSDTF-DEM国标.dem文件为通用.tif格式。

DEM格式转换:转换NSDTF-DEM国标数据格式为通用格式,使用ArcGIS工具转换NSDTF-DEM国标.dem文件为通用.tif格式。 *.dem是一种比较常见的DEM数据格式,其有两种文件组织方式,即NSDTF-DEM和USGS-DEM。 (1)NSDT…

Dubbo3应用开发—Dubbo序列化方案(Kryo、FST、FASTJSON2、ProtoBuf序列化方案的介绍和使用)

Dubbo序列化方案(Kryo、FST、FASTJSON2、ProtoBuf序列化方案的介绍和使用) 序列化简介 序列化是Dubbo在RPC中非常重要的一个组成部分,其核心作用就是把网络传输中的数据,按照特定的格式进行传输。减小数据的体积,从而…

SSL双向认证-SpringBoot项目

SSL双向认证需要CA证书,开发过程可以利用自签CA证书进行调试验证。 自签CA证书生成过程:SSL双向认证-自签CA证书生成 1.将server.p12证书和client.jks证书复制到项目resources目录下 2.修改配置文件,增加下述内容 #https端口 server.port…

Excel中的宏、VBA

一、宏是什么? EXCEL MACRO 是一种记录和播放工具,它仅记录您的 Excel 步骤,并且宏将根据需要播放任意多次。 VBA 宏可自动执行重复任务,从而节省了时间。 这是一段可在 Excel 环境中运行的编程代码,但您无需成为编码…

软件定制APP开发步骤分析|小程序

软件定制APP开发步骤分析|小程序 软件定制开发步骤: 1.需求分析: 这是软件定制开发的第一步,也是最关键的一步。在这个阶段,软件开发团队需要与客户进行沟通,了解客户的具体需求和期望。通过讨论和交流,确…

【力扣每日一题】2023.9.21 收集树中金币

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们一棵树,不过这棵树不是普通的树,而是无向无根树。给我们一个二维数组表示节点之间的连接关系&#xff…

BI系统上的报表怎么导出来?附方法步骤

在BI系统上做好的数据可视化分析报表,怎么导出来给别人看?方法有二,分别是1使用报表分享功能,2使用报表导出功能。下面就以奥威BI系统为例,简明扼要地介绍这两个功能。 1、报表分享功能 作用: 让其他同事…

微软(TTS)文本转语音服务API实现

此博客实现与java实现微软文本转语音(TTS)经验总结_java tts_${简简单单}的博客-CSDN博客之上,首先感谢博客源码的提供,本人在上面添加了一些详细的注释,方便大家跟好的理解和使用,毕竟我已经用原文调试了一…

【LeetCode-中等题】 222. 完全二叉树的节点个数

文章目录 题目方法一:把该题当做一个普通的二叉树来做(任何遍历都可以)方法二:利用完全二叉树的性质来做 题目 方法一:把该题当做一个普通的二叉树来做(任何遍历都可以) 例如:二叉树…