Ubuntu18下QT连接MariaDB(MySQL)

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

Guess you like

Origin blog.csdn.net/weixin_45905650/article/details/108396638