Ubuntu18下QT连接MariaDB(MySQL)

tech2025-02-26  13

Ubuntu18下QT连接MariaDB

QT和MariaDB的下载安装编译mysql驱动找到mysql的源码查看帮助文档:(非必看)编译项目第一步第二步:安装gcc和g++编译器(你可以只安装g++)第三步

QT和MariaDB的下载安装

QT的安装请参考:手把手教你Ubuntu18环境下QT的安装

MariaDB安装: MySQL 被 Oracle 收购后,存在闭源的风险,因此开源社区 fork 了MySQL独立开发来规避这个风险。MariaDB 无论是 API 还是命令行,都与 MySQL 完全兼容。所以我们这里选择mariadb数据库,它跟MySQL没什么区别。

命令行输入安装命令,显示无法打开锁文件

apt-get install mariadb-server

很简单,切换到root用户,再进行安装(这里sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等,简单说就是su命令是用来切换用户。如果超级权限用户root向普通用户切换不需要密码;而普通用户切换到其它任何用户都需要密码验证) 验证Mariadb数据库是否安装好:mysql -u root -p,进入MySQL bin目录后执行,回车后输入密码连接。常用参数:-h 服务器地址,-u 用户名,-p 密码,-P 端口 需要输入密码,但是我还未设置密码,现在修改root密码: 1.以root身份在终端登陆(必须) 2.输入命令,格式:mysqladmin -u root -p password 新密码 3.回车后出现 Enter password,输入旧密码,如果没有,直接回车 设置完root密码,我们就能通过密码登录了。这里提供一些Mariadb数据库的创建和基本操作

查看系统有多少数据库 MariaDB [(none)]> show databases 创建一个数据库 MariaDB [mysql]> create database luntan 退出数据库系统 MariaDB [(none)]> quit MariaDB [(none)]> exit

参考:linux基础&Mariadb数据库的创建和基本操作

注意: 在新安装的Ubuntu 18.04上,默认的MySQL或MariaDB配置通常允许您在不提供密码的情况下访问数据库(具有完全管理权限),只要您从系统的root帐户建立连接即可。 在这种情况下,可能没有必要重置密码。 在继续重置数据库root密码之前,请尝试使用sudo mysql命令访问数据库。(注意mariadb与MySQL命令兼容) 这样,mariadb就安装好了

编译mysql驱动

找到mysql的源码

我的Qt安装的位置:

/home/xxx123/Qt

mysql 项目源码的位置:

/home/xxx123/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql

查看帮助文档:(非必看)

根据提示查找sql-driver.html /home/xxx123/Qt/Docs/Qt-5.14.2/qtsql文件夹下找到sql-driver.html 打开网页,搜索 How to Build the QMYSQL Plugin on Unix and macOS,结果如下图

编译项目

第一步

切换到源码目录

cd /home/xxx123/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers

编译项目

qmake -- MYSQL_PREFIX=/usr/local

/usr/local 是mysql安装目录 qmake的执行出问题的话就是qmake环境变量没有配置,可以改成以下命令行:即执行特定文件夹下的qmake

/home/xxx123/Qt/5.14.2/gcc_64/bin/qmake -- MYSQL_PREFIX=/usr/local

还是报错,这里去安装gcc和g++编译器(你可以只安装g++)

第二步:安装gcc和g++编译器(你可以只安装g++)

C/C++编译器有很多,你也可以安装clang,他们之间的区别请参考:编译器GCC与Clang的异同

开始安装,输入以下命令

sudo apt-get install gcc-4.8 g++-4.8

查看gcc是否安装好了

ls /usr/bin/gcc*

应用gcc

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100 sudo update-alternatives --config gcc

检查gcc

gcc --version或gcc -v

同理,查看g++是否安装好

ls /usr/bin/g++*

应用g++

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100 sudo update-alternatives --config g++

检查g++

g++ --version或g++ -v

第三步

重新输入命令

/home/xxx123/Qt/5.14.2/gcc_64/bin/qmake -- MYSQL_PREFIX=/usr/local

编译完成后在

/home/xxx123/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers

目录下会出现libqsqlpsql.so.debug和libqsqlpsql.so 两个文件,把它们拷贝到

/home/xxx123/Qt/5.14.2/gcc_64/plugins/sqldrivers

覆盖原文件,然后就可以连接了。

我这里应该是自动编译到了该路径

/home/xxx123/Qt/5.14.2/gcc_64/plugins/sqldrivers

参考:https://blog.csdn.net/gongziwushuang/article/details/96463655

一直编译不成功可以参考:https://blog.csdn.net/qq_36938428/article/details/89528071

最新回复(0)