mac系统下QT连接MySQL数据库连接不上的解决方法

mac系统下QT连接MySQL数据库连接不上的解决方法
Qt下载官网 http://download.qt.io/archive/qt/
mysql下载官网 https://downloads.mysql.com/archives/community/
我也是弄了好几天,才解决,接下来分享一下:

1.首先下载QT版本,我是用的5.12.0这个版本,安装的时候组件选择一定要选择Source文件。
2.安装MySQL:
(1)选择你对应的MAC系统进行下载,选择版本。
在这里插入图片描述
(2)下载完后安装,我这儿呢选择的是(use legacy password encryption),下一步(next)。
在这里插入图片描述
(3)设置密码,这儿用户名是“root",输入框中是你连接数据库时输入的密码,必须8位以上,设置好后点击完成,在你的系统偏好设置就能看到MySQL。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)点击configuration能看到数据存放的文件夹,/usr/local/mysql路径需要在访达界面上按住command+shift+g,点击/usr/local里面去找mysql文件夹。
在这里插入图片描述
(5)连接数据库,在终端输入 mysql -u root -p,如果提示输入密码能打开就不用配置环境变量,否者还需要配置环境变量。
环境变量配置:/Users/xxx(用户文件夹),按command+shift+.可以显示隐藏,找到.zshrc这个文件,右键用文本编辑打开,里面输入 export PATH=${PATH}:/usr/local/mysql/bin 保存,接下来就可以在终端打开MySQL。
mysql> create database db1;
我这儿创建了一个db1的数据库

3.终端里面看是否有qmake,没有就安装,参考这位大神的文章(添加链接描述),环境变量配置:/Users/xxx(用户文件夹),按command+shift+.可以显示隐藏,找到.zshrc这个文件,右键用文本编辑打开,里面输入 :

export QTDIR=/Users/用户名/Qt5.12.0/5.12.0/clang_64  (重要:这儿换成你QT安装的路径)
exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export PATH=$QTDIR/bin:$PATH

然后保存,这下在终端里面输入qmake -v,会显示qmake的版本号。

4.用终端打开你QT的sqldrivers文件夹的位置,输入:
cd /Users/用户名/Qt5.12.0/5.12.0/clang_64/plugins/sqldrivers
回车后定位到sqldrivers这个文件夹,输入:ls
回车后查看是否有 libqsqlmysql.dylib 这个文件,正常情况下是有这个文件的。然后输入:
otool -L libqsqlmysql.dylib 终端显示如下图:
在这里插入图片描述
找到蓝色标记处,有一个 libmysqlclient.20.dylib这个文件,这个文件是QT驱动连接的文件,我们安装的MySQL数据库的文件是 libmysqlclient.21.dylib,将21改成20就可以了。
去这个路径下 /usr/local/mysql-8.0.28-macos11-x86_64/lib/ 将你的 libmysqlclient.21.dylib改成终端显示的 libmysqlclient.20.dylib(/usr/local/mysql/lib/. 路径需要在访达界面上按住command+shift+g,点击/usr/local里面去找mysql文件夹)
5.新建一个QT项目,在pro文件里面添加QT += sql,添加完记得构建或者保存一下。

 #include "widget.h"
#include "ui_widget.h"
//#include<QLabel>
#include <QSqlDatabase>
#include<QSqlQuery>
#include<QSqlQueryModel>
#include<QSqlError>
#include<QDebug>
#include<QMessageBox>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    //QT的数据库驱动
    qDebug()<<QSqlDatabase::drivers();
    //获取数据库对象
    QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setUserName("root");
    db.setPassword("11111111");
    db.setDatabaseName("db1");
    if(db.open()==false)
    {
        QMessageBox::warning(this,"失败",db.lastError().text());
        return;
    }
    else {
       ui->label->setText("MYSQL数据库连接上了");
    }
}
Widget::~Widget()
{
    delete ui;
}

运行后如果没有警告就表示连接成功了,接下来就可以进行数据库开发了。
在这里插入图片描述
这也是我在学习中遇到的问题,记录下来分享给更多的人。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值