1、安装MySQL
安装MySQL软件以及驱动。
sudo apt-get install mysql-server
sudo apt install mysql-client
sudo apt-get install libmysqlclient-dev
2、编译qmysql驱动
2.1、修改mysql.pro
找到Qt源码中的mysql.pro项目文件,一般位于:/opt/Qt/5.15.2/Src/qtbase/src/plugins/sqldrivers/mysql文件夹下。
如果非root用户,则需要更改mysql文件夹所在目录的权限,以便修改文件内容。
可使用命令:
sudo chmod -R 777 /opt/Qt/5.15.2/Src/qtbase/src/plugins/sqldrivers/
1)修改mysql.pro文件:
#注释这一行
#QMAKE_USE += mysql
2)修改qsqldriverbase.pri文件:
# For QMAKE_USE in the parent projects.
#注释这一行
#include($$shadowed($$PWD)/qtsqldrivers-config.pri)
#添加这一行
include(./configure.pri)
2.2、编译
在mysql.pro文件夹中打开终端,执行命令:
qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/ -lmysqlclient" mysql.pro
make
sudo make install
注:1)qmake前面不用sudo;2)如果qmake命令不能识别,设置Qt环境变量;3)确认INCLUDEPATH+和LIBS+目录是否正确;
在/opt/Qt/5.15.2/gcc_64/plugins/sqldrivers路径下可以看到libqsqlmysql.so库文件:
3、配置MySQL
3.1、查询用户信息
驱动编译好后,Qt软件还是不能连接数据库,显示:
MySQL数据库连接失败: "Access denied for user 'root'@'localhost' QMYSQL: Unable to connect"
这是因为一般出现这种情况多数是安装新版本mysql,root密码是随机的,也不是空密码,所以要通过查看随机密码进入,再进行修改原来的密码。
输入命令查询用户信息。
sudo cat /etc/mysql/debian.cnf
显示如下:
输入命令:
mysql -u debian-sys-maint -p
输入debian.cnf对应的用户密码登录进去,输入命令查看用户列表。
use mysql;
select user,plugin from user;
3.2、修改root账户
修改root 账户密码格式。
# 修改其密码格式
update user set plugin='mysql_native_password' where user='root';
# 查询其用户
select user,plugin from user;
# 刷新权限
flush privileges;
3.3、更改root账户密码
修改root账户密码为:root。
# 修改root账号密码
alter user 'root'@'localhost' identified by 'root';
# 在次刷新权限
flush privileges;
# 退出登录
exit
可以输入命令:mysql -u debian-sys-maint -p 再输入密码root登录进去了。
也可以使用MySQL Workbench界面登录。
将root账户的密码改为Qt程序中的连接密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxxxxxx';
#xxxxxxxx是你要更改的密码
使用QT也成功连接到数据库,打开了软件界面:
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » Ubuntu编译MySQL驱动连接QT
发表评论 取消回复