第八天: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/目录下
- 将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客户端版————————————————————————
-
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:有兴趣自己找下吧!!
相关文章:
第八天:gec6818arm开发板和Ubuntu中安装并且编译移植mysql驱动连接QT执行程序
一、Ubuntu18.04中安装并且编译移植mysql驱动程序连接qt执行程序 1 、安装Mysql sudo apt-get install mysql-serverapt-get isntall mysql-clientsudo apt-get install libmysqlclient-d2、查看是否安装成功,即查看MySQL版本 mysql --version 3、MySQL启动…...
使用JavaScript实现图片的自动轮播
介绍 在网站开发中,经常会遇到需要展示多张图片并自动切换的需求,这就需要使用JavaScript来实现图片的自动轮播功能。本文将通过一个简单的例子,演示如何用JavaScript实现图片的自动轮播。 实现步骤: HTML结构: 首先…...
React 如何拿时间戳计算得到开始和结束时间戳
获取需要的时间戳(开始 and 结束时间戳) 调用如下方法就行: function getWantTimestamp(props) {//当前时间const nowDate parseInt((new Date().getTime() / 1000).toString()); //当前时间switch (props) {// 当前时间时间戳case "nowData": {return n…...
leetcode114 二叉树展开为链表
题目 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。 展开后的单链表应该与二叉树 先序遍历 顺序相同。 示例 输…...
Linux系统上使用SQLite
1. 安装SQLite 在Linux上安装SQLite非常简单。可以使用包管理器(如apt、yum)直接从官方软件源安装SQLite。例如,在Ubuntu上使用以下命令安装SQLite: sudo apt-get install sqlite32. 打开或创建数据库 要打开或创建一个SQLite数…...
实现一个超级简单的string类(基于c++)
简单的string仅仅需要构造函数,拷贝构造,移动构造和移动赋值,operator,析构函数等。如下: #include<iostream> #include<assert.h> using namespace std; namespace qyy {class string{public:friend ostream& …...
uniapp存值和取值,获取登录凭证 code方法
Uniapp 的存值和取值 Uniapp 的存值和取值方法可以使用Vue.js的数据绑定方式,也可以使用uni.setStorageSync() 和 uni.getStorageSync() 方法。 使用Vue.js的数据绑定方式: 在Vue组件中定义一个data属性,然后将需要存储的值赋给该属性。例…...
【SpringCloud微服务全家桶学习笔记-服务调用Ribbon/openFeign】
SpringCloud微服务全家桶学习笔记 内容:SpringCloud SpringCloud alibaba 技术栈:Java8mavengit,githubNginxRabbitMQSpringBoot2.0 仓库:链接 服务调用Ribbon 是什么? Ribbon是Netflix发布的开源项目ÿ…...
Qt使用I.MX6U开发板上的按键(原理:将电脑键盘方向键↓在Qt中的枚举值与开发板中按键定义的枚举值一致,这样电脑端测试效果就与开发板的一致)
在上篇介绍了Qt点亮I.MX6U开发板的一个LED,对于Qt控制I.MX6U开发板的一个蜂鸣器原理也是一样的,就不做详细介绍,具体可参考Qt控制I.MX6U开发板的一个蜂鸣器,本篇介绍Qt使用I.MX6U开发板上的按键的相关内容。 文章目录 1. 开发板硬…...
C++ RAII在HotSpot VM中的重要应用
RAII(Resource Acquisition Is Initialization),也称为“资源获取就是初始化”,是C语言的一种管理资源、避免泄漏的惯用法。C标准保证任何情况下,已构造的对象最终会销毁,即它的析构函数最终会被调用。简单…...
python随手小练
题目: 使用python做一个简单的英雄联盟商城登录界面 具体操作: print("英雄联盟商城登录界面") print("~ * "*15 "~") #找其规律 a "1、用户登录" b "2、新用户注册" c "3、退出系统&quo…...
MySQL——函数和流程控制
2023.9.21 函数 含义:一组预先编译好的SQL语句的集合,理解成批处理语句。 提高代码的重用性简化操作减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率 与存储过程的区别: 存储过程:可以有0个返回&am…...
【Vue3 源码讲解】nextTick
nextTick 是 Vue 3 中用于异步执行回调函数的函数,它会将回调函数延迟到下一个微任务队列中执行。其中,Vue 更新 DOM 是异步的。下面是对 nextTick 函数的详细解释: export function nextTick<T void, R void>(this: T,fn?: (this:…...
什么是ATR,在聚宽量化平台如何计算ATR
海龟们使用两种资金管理方法。首先,我们把头寸分成一个个小块。这样,即使一笔交易赔了钱,我们损失的也只是一个头寸的一部分。里奇和比尔把这些小块称作头寸单位。其次,我们使用里奇和比尔发明的一种创新性的头寸规模决定方法。这…...
Python 爬虫实战之爬淘宝商品并做数据分析
前言 是这样的,之前接了一个金主的单子,他想在淘宝开个小鱼零食的网店,想对目前这个市场上的商品做一些分析,本来手动去做统计和分析也是可以的,这些信息都是对外展示的,只是手动比较麻烦,所以…...
Python爬虫-requests.exceptions.SSLError: HTTPSConnectionPool疑难杂症解决(1)
前言 本文是该专栏的第7篇,后面会持续分享python爬虫案例干货,记得关注。 在爬虫项目开发中,偶尔可能会遇到SSL验证问题“requests.exceptions.SSLError: HTTPSConnectionPool(host=www.xxxxxx.com, port=443): Max retries exceeded with url ...”。亦或是验证之后的提示…...
12:STM32---RTC实时时钟
目录 一:时间相关 1:Unix时间戳 2: UTC/GMT 3:时间戳转化 二:BKP 1:简历 2:基本结构 三: RTC 1:简历 2: 框图 3:RTC基本结构 4:RTC操作注意 四:案例 A:读写备份寄存器 1:连接图 2: 步骤 3: 代码 B:实时时钟 1:连接图 2:函数介绍 3:代码 一:时间相关 1:Un…...
【动态规划刷题 16】最长等差数列 (有难度) 等差数列划分 II - 子序列
1027. 最长等差数列 https://leetcode.cn/problems/longest-arithmetic-subsequence/ 给你一个整数数组 nums,返回 nums 中最长等差子序列的长度。 回想一下,nums 的子序列是一个列表 nums[i1], nums[i2], …, nums[ik] ,且 0 < i1 <…...
【postgresql】替换 mysql 中的ifnull()
数据库由mysql 迁移到postgresql,程序在执行查询时候报错。 HINT: No function matches the given name and argument types. You might need to add explicit type casts. CONTEXT: referenced column: ifnull 具体SQL: SELECT ifnull(phone,) FROM c_user p…...
单例模式(懒汉式,饿汉式,变体)
单例模式,用于确保一个类只有一个实例,并提供一个全局访问点以访问该实例。 饿汉式(Eager Initialization) 程序启动时就创建实例 #include <iostream> class SingletonEager { private:static SingletonEager* instanc…...
Java Lambda表达式:简洁且强大的函数式编程工具
Lambda表达式是Java 8及以后版本中引入的一种函数式编程特性。它是一种匿名函数,允许开发人员以简洁和易读的方式编写代码,并且可以作为参数传递给方法或存储在变量中。Lambda表达式的基本语法如下:(parameters) -> expression,…...
开源框架中的责任链模式实践
作者:vivo 互联网服务器团队-Wang Zhi 责任链模式作为常用的设计模式而被大家熟知和使用。本文介绍责任链的常见实现方式,并结合开源框架如Dubbo、Sentinel等进行延伸探讨。 一、责任链介绍 在GoF 的《设计模式》一书中对责任链模定义的:将…...
智能配电系统:保障电力运行安全、可控与高效
智能配电系统是一种先进的电力分配技术,它通过智能化、数字化和网络化等方式,有效地保障了电力运行的安全、可控和高效。 力安科技智能配电系统是在配电室(含高压柜、变压器、低压柜)、箱式变电站、配电箱及动力柜(…...
MySQL学习系列(11)-每天学习10个知识
目录 1. 数据库设计的关键因素2. 使用存储过程和函数来提高性能和可重用性3. MySQL性能优化4. 使用视图简化查询和提供数据安全性5. 数据库备份和恢复策略的重要性和实践经验6. 在分布式系统中保证数据一致性和可用性7. 理解MySQL的复制和其在实际应用中的作用8. 使用游标进行分…...
如何通过Gunicorn和Niginx部署Django
本文主要介绍如何配置Niginx加载Django的静态资源文件,也就是Static 1、首先需要将Django项目中的Settings.py 文件中的两个参数做以下设置: STATIC_URL /static/ STATIC_ROOT os.path.join(BASE_DIR, static) 然后在宝塔面板中执行python manage.…...
C语言 cortex-A7核UART总线实验
一、C 1)uart4.h #ifndef __UART4_H__ #define __UART4_H__ #include "stm32mp1xx_rcc.h" #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_uart.h&quo…...
asp.net C#免费反编译工具ILSpy
在维护一个没有源码的C#项目,只能反编译了。 项目主页 https://github.com/icsharpcode/ILSpy 使用方法 中文界面使用简单,把你要反编译的dll拖过去就可以了。好使!!!...
演讲实录:DataFun 垂直开发者社区基于指标平台自主洞察北极星指标
在7月14日举办的 Kyligence 用户大会的数智新应用论坛上,DataFun COO 杜颖女士为大家带来了《垂直开发者社区基于指标平台自主洞察北极星指标》的主题演讲。接下来,我们一起看看 DataFun 如何在没有专门的 IT 团队的情况下,实现对北极星指标的…...
ffmpeg编译 Error: operand type mismatch for `shr‘
错误如下: D:\msys2\tmp\ccUxvBjQ.s: Assembler messages: D:\msys2\tmp\ccUxvBjQ.s:345: Error: operand type mismatch for shr D:\msys2\tmp\ccUxvBjQ.s:410: Error: operand type mismatch for shr D:\msys2\tmp\ccUxvBjQ.s:470: Error: operand type mismatch…...
【Windows Server 2012 R2搭建FTP站点】
打开服务器管理器——添加角色和功能 下一步 下一步 下一步 选择FTP服务器,勾上FTP服务和FTP扩展,点击下一步 安装 安装完成关闭 打开我们的IIS服务器 在WIN-XXX主页可以看到我们的FTP相关菜单 右键WIN-XXXX主页,添加FTP站点 输入站点名称-FT…...
国务院网站集约化建设/24小时最新国际新闻
我们每天行走在城市的摄像头下,我们的口袋里装满各种能表明我们身份的卡,我们的个人信息每天暴露在网络等信息平台上……无论我们去哪,不管我们做什么,都似乎有那么一双“眼睛”在看着。无处不在的“第三只眼”,凝结成…...
苏州公司网站建设找哪家/南昌seo网站排名
From: http://my.oschina.net/jjface/blog/339144 概述: 客户端,浏览器或者使用http协议和服务器通信的程序。 如: 客户端通过浏览器访问某一网站时,如果该网站为HTTPS网站,浏览器会自动检测系统中是否存在该网站的信任证书, 如果没有信任证书…...
如何申请免费域名做网站/百度销售平台怎样联系
2019独角兽企业重金招聘Python工程师标准>>> Java 在 I/O 领域一直处于劣势,这种情况直到 J2SE SDK 发布了 1.4 版以后才有了改观。 Java 的劣势源于其最大的优势:一次编写,到处运行。 Java 需要运行于虚拟机(即 JVM&a…...
权威的手机网站建设/seo中文意思
目前需要说服客户使用webservice 而不是socket. 我觉得要先分别解释下什么是socket 什么是webservice..这个要我该怎么说才比较形象,让人一定就明白. socket 属于7层中的那个层. 网上找了找,越看越迷糊. 有说属于应用层的. 有说属于传输和网络层的. 还有所属于网络和传输之间…...
石湾网站制作/网址查询服务器地址
一、Linux应用程序的组成 1)普通的可执行程序文件:一般保存在/usr/bin目录中,普通用户即可执行。 2)服务器程序、管理程序文件:一般保存在/usr/sbin目录中,只有管理员才能执行。 3)配置文件:一…...
前端需要会wordpress/网页广告
文本框失去焦点事件、获得焦点事件onBlur:当失去输入焦点后产生该事件onFocus:当输入获得焦点后,产生该文件Onchange:当文字值改变时,产生该事件Onselect:当文字加亮后,产生该文件onpropertychange 当属性改变发生该事件无论粘贴 keyup oncha…...