欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > ubuntu24.04-qt5-mysql8.0

ubuntu24.04-qt5-mysql8.0

2025/3/19 2:17:14 来源:https://blog.csdn.net/aggie4628/article/details/146041415  浏览:    关键词:ubuntu24.04-qt5-mysql8.0

各版本适配是件麻烦的事。这篇写个ubuntu24.04 -qt5-mysql8.0

1.更新源


 

2.qt5
 



chmod a+x qt-opensource-linux-x64-5.12.1.run
./qt-opensource-linux-x64-5.12.1.run

1.系统是否有这个文件
 查找  sudo find / -name *qsqlmysql*

2.查找客户端文件路径:

sudo find / -name libmysqlclient.so*

3.查找依赖库
ldd /home/tangcj/Qt5.12.1/5.12.1/gcc_64/plugins/sqldrivers/libqsqlmysql.so

如果不缺依赖库,直接返回。缺少的话会给出缺少库的名称。

sudo find / -name *qsqlmysql*1.安装包
sudo apt-get install build-essential                 #1.基础编译工具
sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev #2.openGL
sudo apt-get install libx11-dev libxext-dev libxt-dev libxi-dev libxrandr-dev libxrender-dev  libgl-dev                         #3.X11 和窗口系统依赖
sudo apt install libfontconfig1-dev libfreetype-dev    #4.字体和文本渲染依赖
sudo apt install libpulse-dev libasound2-dev           #5.多媒体依赖
sudo apt install libmysqlclient-dev                    #6.数据库依赖
sudo apt install libssl-dev                            #7.SSL 和网络依赖
sudo apt-get install libxcb-cursor0
sudo apt-get install libtinfo5
sudo apt-get install make-guile
sudo snap install cmake --classic2.修改环境变量vim ~/.bashrcexport QTDIR=/home/tangcj/Qt5.12.1/5.12.1/gcc_64  # Qt 主程序路径  
export PATH=$QTDIR/bin:$PATH    
export QT_PLUGIN_PATH=/home/tangcj/Qt5.12.1/5.12.1/gcc_64/plugins/sqldrivers/  # Qt 插件路径(如数据库驱动)
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH   
# 动态库路径(解决运行时依赖缺失问题)  
source ~/.bashrc验证
qmake -v
echo $PATH           # 查看 Qt 主程序路径是否包含在 PATH 中  
echo $QT_PLUGIN_PATH # 确认插件路径正确 

缺少包libmysqlclient.so.18
https://downloads.mysql.com/archives/community/


 

1.查找 libqsqlmysql.so 
sudo find / -name *sqlmysql*/home/tangcj/Qt5.12.1/Tools/QtCreator/lib/Qt/plugins/sqldrivers/libqsqlmysql.so
/home/tangcj/Qt5.12.1/5.12.1/gcc_64/plugins/sqldrivers/libqsqlmysql.so
/usr/lib/x86_64-linux-gnu/qt5/plugins/sqldrivers/libqsqlmysql.so2.检查驱动依赖ldd /home/tangcj/Qt5.12.1/5.12.1/gcc_64/plugins/sqldrivers/libqsqlmysql.so
find / -name libmysqlclient.so
/usr/lib/x86_64-linux-gnu/libmysqlclient.soubuntu24.04 QT5 mysql  
问题:qDebug()<<QSqlDatabase::drivers(); 可以打印出QMYSQL
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");但是 QMYSQL driver not loaded
原因分析:
1.查找 sudo find / -name *sqlmysql*
结果为
/home/tangcj/Downloads/tools/mysqllibs/libqsqlmysql.so
/home/tangcj/Qt5.12.1/Tools/QtCreator/lib/Qt/plugins/sqldrivers/libqsqlmysql.so
/home/tangcj/Qt5.12.1/5.12.1/gcc_64/plugins/sqldrivers/libqsqlmysql.so
2.查找 find / -name libmysqlclient.so
/usr/lib/x86_64-linux-gnu/libmysqlclien








 

2.写测试程序

把依赖库和exe放在一个目录下

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtSql/QSqlDatabase>
#include <QDebug>
#include <QMessageBox>
#include <QtSql/QSqlError>
#include <QtSql/QSqlQuery>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);qDebug()<<QSqlDatabase::drivers();// 创建数据库连接QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");db.setHostName("localhost");      // MySQL 主机名db.setDatabaseName("testdb");     // 数据库名db.setUserName("root");           // 用户名db.setPassword("123@1234");       // 密码// 尝试连接if (!db.open()) {qDebug() << "Failed to connect to database:" << db.lastError().text();//return -1;}qDebug() << "Connected to MySQL database!";// 执行一个简单的查询QSqlQuery query;if (query.exec("SELECT VERSION()")) {if (query.next()) {qDebug() << "MySQL Version:" << query.value(0).toString();}} else {qDebug() << "Query failed:" << query.lastError().text();}// 关闭数据库连接db.close();
}


 

3.mysql8.0

1.安装 MySQL 服务器:sudo apt install mysql-server -y​
不要用root装

 2.MySQL 服务并使其在系统启动时自动启动

sudo systemctl start mysql
sudo systemctl enable mysql

3. 配置一下 安全设置

sudo mysql_secure_installation
y
0 只要求长度至少8位;
1,至少8位,数字大小写混合外加特殊字符;
2,中等的基础上和字典进行比对;
其余都是y
4.查看状态  systemctl status mysql.service
CTRL+C结束5.验证:
sudo mysql -u root -p
输入root用户密码 1234@12346.设置远程登陆use mysql;
select host,user from user; 
把root从只能本地访问改成能被远程访问
xupdate user set host='%' where user='root';
update user set host='%' where user='root';
alter user 'root'@'%' identified with mysql_native_password by '123456';select host,user from user;
flush privileges;
exit;查看/etc/mysql/mysql.conf.d/mysqld.cnf
修改绑定地址:由127.0.0.1 到0.0.0.0

重启服务
systemctl restart mysql
systemctl status mysql

apt install net-tools
apt install telnetd
apt install telnet
telnet localhost 3306
telnet 192.168.1.8 3306

忘记密码的话去掉验证
 

update user set authentication_string='' where user='root';设置登陆密码为空
exit;                                                                                      退出登录***,
 vim  /etc/mysql/mysql.conf.d/mysqld.cnf  删除***第一步中文件中的 skip-grant-tables,
systemctl restart mysql
systemctl status mysql                  再次重启mysql服务.

root用户空密码直接登陆
mysql -u root -p passwrod:直接回车;

修改密码,需要设置复杂的密码(字母,数字,特殊符号组合)后重新登陆,如下:
ALTER user 'root'@'localhost' IDENTIFIED BY '1234@1234';


第一次登录时输入的就设置的root密码。

设置密码时会出现:密码密码策略不对:


设置密码策略:

SET GLOBAL validate_password.policy=LOW;
SET GLOBAL validate_password.mixed_case_count=0;
SET GLOBAL validate_password.number_count=0;
SET GLOBAL validate_password.special_char_count=0;

查看设置结果:


此时修改


alter user 'root'@'%' identified with mysql_native_password by '123@1234'; #只要是8位就行。
flush privileges;




此时,远方连接成功。
 

4.编译

4.1编译库

ubuntu 

chmod -R 

1.修改my.pro

去掉 QMAKE_USE += mysql

sudo apt install  libmysqlclient-dev

添加3句话

windows:
 

INCLUDEPATH +="D:\MySQL\include"   #MySQL安装的头文件路径
LIBS +="D:\MySQL\lib\libmysql.lib"        #静态库
DESTDIR =../mysql/lib/                           #目标路径

linux
INCLUDEPATH +=  /usr/include/mysql
LIBS +=  /usr/lib/x86_64-linux-gnu/libmysqlclient.a
DESTDIR = $$PWD/myLib/

2.修改qsqldriverbase.pri






生成库文件



复制到对应的目录下

4.2生成新工程
 

1.修改工程文件




2.链接使用

5.VMWare如果不能正常复制 就做个共享文件夹




下面是参考别人的没成功过。
 

解压复制到桌面的压缩文件
tar -zxvf VMwareTools-10.3.22-****.tar.gz  -C  /home/tangcj/Desktop/docker/VMwareTool
cd vmware-tools-distrib
sudo ./vmware-install.pl

 


 



1.查看共享文件夹是否生效
vmware-hgfsclient  #如果显示了已挂载的文件夹列表,则说明共享文件夹已生效。2.创建挂载目录并手动挂载sudo mkdir /mnt/hgfs3.手动挂载命令测试共享文件夹是否能够正常挂载sudo mount -t fuse.vmhgfs-fuse .host:/  /mnt/hgfs -o allow_other挂载所使用的方法   宿主机地址             虚拟机地址  表示普通用户也能访问共享目录4.查看挂载内容$ ls5.设置自动挂载
sudo vim /etc/fstab.host:/06-VMWareShare  /mnt/hgfs   fuse.vmhgfs-fuse     allow_other,defaults         0       0

6、没有网络


 

解决方法:

sudo service NetworkManager status

sudo rm /var/lib/NetworkManager/NetworkManager.state
sudo service NetworkManager start
sudo vim /etc/NetWorkManager/NetworkManager.conf,
将其中的managed=false改为managed=true


 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词