qtmysql缓存
㈠ ubuntu linux 下使用Qt连接Mysql数据库
Linux下完整的MySQL开发需要安装服务器端,如果安装客户端也没什么不好。直接在软件中心搜mysql,把client和server选上。
环境说明:
ubuntu
10.04.2
QtSDK
(1.5G安装包的那个)
mysql5.1
1.安装MySQL
Linux下完整的MySQL开发需要安装服务器端,如果安装客户端也没什么不好。直接在软件中心搜mysql,把client和server选上。
server在安装时会提示为root用户设置密码,设一个好了。
我使用的是mysql5.1版本,用户名密码存储在一个叫mysql的数据库里,只有管理员级别才能看到。
如果直接在终端中输入
mysql,可能会提示ERROR
1045
(28000),这是因为这时候你是以自己用户名访问数据库,而目前数据库中只有一个root用户。没关系,如果有必要,可以添加一个用户进去:
mysql
-uroot
-p
--
以root用户登录
grant
usage
on
*.*
to
mmy@localhost;
--
授权名为mmy的用户本地登录,这里换成自己的用户名就可以了
不过这时候直接mysql只有普通的权限,创建数据库、操作mysql都是不可以的,如果真有将其赋予管理员权限的需要,可以自己查阅有关资料。
2.安装Qt的MySQL驱动。
方法一:直接sudo
apt-get
install
libqt4-sql-mysql
,这是Qt4的mysql驱动,就不用自己费劲编译了,不过可能会额外下载一些东西。
将
/usr/lib/qt4/plugins/sqldrivers/libqsqlmysql.so拷贝到你的QtSDK
sqldrivers目录下,我当时是直接用普通权限安装,目录为:~/QtSDK/Desktop/Qt/473/gcc/plugins/sqldrivers
方法二:其实你也可以sudo
apt-get
download
libqt4-sql-mysql,把包解压缩,然后把里面的so文件搜出来直接拷贝到那里。
方法三:乖乖按照官方方法编译,但是貌似可行性不大,因为新版本的QtSDK并没有src目录,默认也没有mysql的驱动。
3.做个demo试一下
记得在pro文件中
QT
+=那里加上sql,否则qmake是不会去找sql的相关部分的
复制代码代码如下:
#include
QtCore/QCoreApplication
#include
QSqlDatabase
#include
QDebug
int
main(int
argc,
char
*argv[])
{
QCoreApplication
a(argc,
argv);
QSqlDatabase
db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("study");
db.setUserName("root");
db.setPassword("tyh");
if(!db.open()){
qDebug()
"Unable
to
open
database";
}else{
qDebug()
"Database
connection
established";
}
return
a.exec();
}
这里study这个数据库之前我已经创建过了,如果连接成功,就会显示Database
connection
established。
我是建立的控制台程序哈。
软件教程小编推荐:
Linux安装配置MariaDB数据库全程详解
Linux系统怎么设置开机密码?
Linux启动菜单修改教程
㈡ “Qt” mac环境配置qt的mysql驱动
Qt项目里用到了mysql,运行后报掘册错:
查阅资料知道需要配置mysql驱动,本以为几分钟解决的事情,没想到开启了恶魔经历,整整两天时间,mmp!
Stop! 废话别说啦,入正题:
首先,Qt & mysql的安装和环境配置就略了,一搜一大把。
不过注意两点:
先进入到/Users/ing/Qt5.14.2/5.14.2/Src/qtbase/src/plugins/sqldrivers目录下哗友,执行:
这里确保qmake用的qt里判芦宏的就行
其实你可以配置下qt相关的环境变量,在bash_profile里添加:
然后,source ~/.bash_profile ,还有别忘了 source ~/.zshrc
执行成功的话会输出:
根据提示 依次执行:
make sub-mysql
make
make install
进入/Users/ing/Qt5.14.2/5.14.2/clang_64/plugins/sqldrivers下执行,查看链接库:
输出:
此时,运行qt程序 依旧报错。
根据查阅的资料,问题出在
网友们所说的“诡异”的路径那一行(你的输出可能和我的不一样的,但问题应该一样) ,也就是有 libmysqlclient.21.dylib 这行。
另外查了下 @repath 的含义 意思是说 不能明确的指向。。。所以 这里就需要将libmysqlclient.21.dylib 指向扳到正确的道路。
方法就是利用 install_name_tool -change
执行
这里一定要注意顺序,刚开始我就是顺序搞错了,死活就是不行,最后跑到官方论坛里用蹩脚的英语发帖求教也无果,最后还是一遍的重试,一遍的检查才发现的。一天就这么浪费了。
此刻在运行qt程序 ,就不会再报上面的错误了。
撒花,礼花搞起~~~
㈢ Qt中,怎样备份与恢复mysql数据库
使用Qt做MySQL数据库开发,遇到需要备份、还原数据库的问题。
MySQL中没有提供将数据库备份成.sql文件的SQL语句,而是提供了一个mysqlmp.exe工具来完成这个功能。
没有SQL语句,QSqlQuery就用不成了
㈣ 如何删除qt-MySQL-3.3.6-23.el5
1、在插入U盘时按住键盘 shift 键直到系统提示“设备可以使用”,然后打开U盘时不要双击打开,也不要用右键菜单的打开选项打开,而要使用资源管理器(打开我的电脑,按下上面的“文件夹”按钮,或者开始-所中羡有程序-附件-windows资源管理器)将其打开,或者使用快捷键winkey+E打开资源管理器后,一定通过左侧栏的树形目录打开可移动设备!(要养成这样的良好习惯)
2、如果盘内有来路不明的文件,尤其是文件名比较诱惑人的文件,必须多加小心;需要特别提示的是,不要看到图标是文件夹就理所当然是文件夹,不要看到图标是记事本就理所当然是记事本,伪装图标是病毒惯用伎俩。
3、要有显示文件扩展名的习惯 。方法:打开“我的电脑”,工具--文件夹选项--查看,去掉“隐藏已知文件类型的扩展名”的勾,建议选择显示扩展名同时选上“显示隐藏文件”,去掉“不显示系统文件”的勾,这样可以对病毒看得更清楚。有图标的诱人的病毒文件基本都是可执行文件,显示文件扩展名之后,通过文件名后的".exe"即可判断出一个文件可执行文件,从而不会把伪装的病毒可执行文件误认为是正常文件或文件夹磨培派。
4、最后不管你用什么办法,或者用什么软件,插入U盘然后用这个方法检验你有没有中Autorun.inf型病毒的风险。
下面这个批处理可以检验你插入或打开U盘时是否有激活病毒的风险。运行这个批处理,然后按提示操作。注,批处理使用方法:打开开始菜单-附件-记事本,复制批处理内容进去,文件-另存为-文件名:xxxxxxx.bat,保存类型:所有文件-保存。然后找到你保存的位置,会出现一个批处理文件,双击运行即可。
@echo off&setlocal enabledelayedexpansion
echo 请在U盘和电脑没有病毒的情况下插入一个U盘&set /p "d=请输入U盘的盘符(比如输入H): "
set "d=!d:~0,1!"&set "a=autorun.inf.!random!.tmp"
if exist !d!:\autorun.inf attrib.exe -s -h -r !d!:\autorun.inf&ren !d!:\autorun.inf !a!
(echo [autorun]&echo open=calc.exe&echo shellexecute=calc.exe&echo shell=explore
echo shell\open\command=calc.exe&echo shell\explore\command=calc.exe)>!d!:\autorun.inf
echo 现在删除并重新插入U盘&echo 打开U盘,如果出现"计算器"&echo 说明你有中Autorun.inf类型病毒的机会
echo 完成后按任意键继续&pause>nul
del !d!:\autorun.inf&if exist !d!:\!a! ren !d!:\!a! autorun.inf&goto :eof
推荐的其他方法:
1、推荐一种彻底拒绝Autorun.inf类型病毒的方法.
运行下面这个批处理,就可以保证插入以及打开磁盘时不中病毒(不会占用计算机资源,运行一次即可对当前用户名生效):
@ECHO off
REG.exe DELETE HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2 /瞎贺f
REG.exe ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2
ECHO HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2 []>%temp%\temp.txt
REGINI.exe %temp%\temp.txt
GOTO :eof
如果想再恢复Autorun.inf功能运行这个批处理:
@ECHO off
ECHO HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2 [7]>%temp%\temp.txt
REGINI.exe %temp%\temp.txt
REG.exe DELETE HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2 /f
REG.exe ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2
GOTO :eof
2、对于伪装型病毒,可以通过它的可执行属性判断出来。
除通过选择文件夹选项“不隐藏扩展名”外,不喜欢显示所有为文件扩展名的用户还可以通过这种方式将可执行文件的特征--".exe"扩展名显示出来,这样病毒伪装成的文件或文件夹会多出一个".exe"。
以管理员身份运行下面的批处理:
@ECHO off
REG.exe ADD HKCR\exefile /v AlwaysShowExt /t REG_SZ /f
TASKKILL.exe /im explorer.exe /f
START %windir%\explorer.exe
GOTO :eof
要恢复不显示exe扩展名运行这个批处理:
@ECHO off
REG.exe DELETE HKCR\exefile /v AlwaysShowExt /f
TASKKILL.exe /im explorer.exe /f
START %windir%\explorer.exe
GOTO :eof
另一种简单的预防方法组策略-禁用自动播放
操作步骤为:点击开始→运行→输入gpedit.msc,打开组策略编辑器,浏览到计算机配置→管理模板→系统,在右边窗格中双击“关闭自动播放”,对话框中选择所有驱动器,确定即可。
另一种更为简单的免疫办法
建立txt文本文件,命名为闪存免疫,输入以下代码:
md c:\Autorun.inf\
md c:\Autorun.inf\1234...\
md x:\Autorun.inf\
md x:\Autorun.inf\1234...\(X代表盘符,你有几个盘就可以输入几个)
保存退出,并将TXT文件转化为BAT批处理文件,双击运行,在各个盘符的根目录下会出现Autorun.inf文件夹,并且因为它们的文件夹内有不可删除文件所以该文件夹也无法删除。这样,免疫闪存就做成了。感觉非常棒吧
在桌面上建立一个名为Autorun.inf的文件夹加上只读及隐藏属性,分别放入不同的盘符根目录中同样也可以达到以上目的