Ubuntu18下QT连接MariaDB
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
注意:
在新安装的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