从安装MySQL到Qt,再到Qt链接MySQL(Qt包括安装MySQL驱动)
本人已测试成功,放心食用!!!!!
一、MySQL
1 、安装Mysql
依次输入以下命令
sudo apt-get install mysql-server
apt-get isntall mysql-client
sudo apt-get install libmysqlclient-d
2、查看是否安装成功
mysql --version
即查看MySQL版本
3、MySQL启动与关闭命令
service mysql start # 启动
service mysql stop # 关闭
4、设置用户和密码
先输入以下命令
cd /etc/mysql
sudo cat debian.cnf
你会得到
以下类似结果
根据user 和 password输出结果, 编辑命令 mysql -u
(
u
s
e
r
)
−
p
(user) -p
(user)−p(password),不用写括号,括号是方便看
mysql -udebian-sys-maint -p2STJ4ZfRtNhqe4Aw
#最好是复制过来以免出错,不要把 -u -p 忽略掉
了
至此 已经进入到了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安装完成
二、Qt
1、进入官网下载地址 http://download.qt.io/
archive 各种 Qt 开发工具安装包,新旧都有(可以下载 Qt 开发环境和源代码)。
community_releases 社区定制的 Qt 库,Tizen 版 Qt 以及 Qt 附加源码包。
development_releases 开发版,有新的和旧的不稳定版本,在 Qt 开发过程中的非正式版本。
learning 有学习 Qt 的文档教程和示范视频。
ministro 迷你版,目前是针对 Android 的版本。
official_releases 正式发布版,是与开发版相对的稳定版 Qt 库和开发工具(可以下载Qt开发环境和源代码)。
online Qt 在线安装源。
snapshots 预览版,最新的开发测试中的 Qt 库和开发工具。
2、(这里推荐Qt 5.99版本)进入archive目录选择qt目录,选择5.9目录,再选择5.99,最后选择qt-xxxxxxxxxxx.run文件,下载到本地。(这里一步到位)
3、赋予文件执行权限
chmod +x ./qt-opensource-linux-x64-5.9.9.run
4、安装
./qt-opensource-linux-x64-5.9.9.run
如果安装过程中,有注册页面,把网络关闭,重新开始,点击跳过,之后就可以开网了
选择自己的安装路径
注意:一定要把源码选上,一定要把源码选上,一定要把源码选上,也就是source选项,建议全选
之后就是等待了
5、安装完成后,不要运行,执行以下语句
sudo apt-get install build-essential
sudo apt-get install libqt4-dev
到此安装完成,可以运行了
三、qt链接mysql
先创建一个qt项目
在.pr文件 加上
QT += sql
在main.cpp文件中添加以下代码
#include "widget.h"
#include <QApplication>
#include <QSqlDatabase>
#include <QDebug>
int main(int argc, char *argv[])
{
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("sys");
db.setUserName("root");
db.setPassword("自己的密码");
if(!db.open()){
qDebug()<<"Unable to open database";
}else{
qDebug()<<"Database connection established";
}
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
然后运行,会报以下错误
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers:
"Driver not loaded Driver not loaded"
QSqlQuery::prepare: database not open
"Driver not loaded Driver not loaded"
说明缺少mysql驱动,需要咱自己编译驱动文件。也有其他办法,但是这里提倡自己编译。其他地方下载文件可能不能使用,是在浪费时间。
首先找到mysql的文件路径
# 终端输入
locate mysql.h
# 终端输出
/usr/include/mysql/mysql.h
# 终端输入
locate libmysqlclient.so
# 终端输出
/usr/lib/x86_64-linux-gnu/libmysqlclient.so
/usr/lib/x86_64-linux-gnu/libmysqlclient.so.20
/usr/lib/x86_64-linux-gnu/libmysqlclient.so.20.3.26
其次,找到自己Qt的安装位置,就是安装是选择的路径
在找到qmake位置 (自己的位置/ Qt5.9.9/5.9.9/gcc_64/bin/qmake)
切记不是/usr/bin/qmake这个路径。不是、不是、不是
最后在qt安装路径下找到Src文件所在位置srcPath=(/home/xipaoer/Qt/Qt5.9.9/5.9.9/Src),进入到该文件中
之后打开终端
cd /qtbase/src/plugins/sqldrivers/mysql
# 此时本人完整的路径为 / home/xipaoer/Qt/Qt5.9.9/5.9.9/Src/qtbase/src/plugins/sqldrivers/mysql/
sudo gedit ./mysql.pro
显示如下
现在要修改本文件,修改如下:
TARGET = qsqlmysql
HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
# QMAKE_USE += mysql
OTHER_FILES += mysql.json
#该路径是的Mysql的头文件(include)路径
INCLUDEPATH +=/usr/include/mysql/
#这是MySQl的库文件路径
LIBS +=-L/usr/lib/x86_64-linux-gnu -lmysqlclient
PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)
上文找到的/usr/include/mysql/mysql.h 和 /usr/lib/x86_64-linux-gnu/libmysqlclient.so的路径就可以用到了。
如果和我的路径一样,直接复制粘贴就可以了。
接下来就是编译和安装驱动了
1、先复制之前找到的 qmake 文件所在位置,一定是gcc_64文件加以下的,本人的是(/home/xipaoer/Qt/Qt5.9.9/5.9.9/gcc_64/bin/qmake)
2、此时终端所在位置为"/ home/xipaoer/Qt/Qt5.9.9/5.9.9/Src/qtbase/src/plugins/sqldrivers/mysql/"
#进入上一层目录
cd ..
# 此时终端所在位置为"/ home/xipaoer/Qt/Qt5.9.9/5.9.9/Src/qtbase/src/plugins/sqldrivers"
#执行qmake生成makefile文件
/home/xipaoer/Qt/Qt5.9.9/5.9.9/gcc_64/bin/qmake
#再次进入驱动目录
cd mysql/
# 此时终端所在位置为"/ home/xipaoer/Qt/Qt5.9.9/5.9.9/Src/qtbase/src/plugins/sqldrivers/mysql/"
#再次执行qmake
/home/xipaoer/Qt/Qt5.9.9/5.9.9/gcc_64/bin/qmake
#编译生成驱动文件
make
# 编译没有错误,进行下一步。如果出错,仔细再看一遍文章
# 安装驱动库
make install
到此,安装完成。可以到Qt项目中运行测试