美文网首页C++/Qt
MAC环境下Qt Mysql的配置

MAC环境下Qt Mysql的配置

作者: 哦呵呵y | 来源:发表于2020-05-19 18:14 被阅读0次

    Qt下载官网 http://download.qt.io/archive/qt/

    在 Qt中使用数据库,需要配置数据库驱动。

    #include <QApplication>
    #include <QSqlDatabase>
    #include <QDebug>
    #include <QStringList>
     
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
     
     
        qDebug()<<"Avaliable drivers;";
        QStringList drivers = QSqlDatabase::drivers();
        foreach(QString driver,drivers)
            qDebug()<<driver;
     
     
        return a.exec();
    }
    
    
    Avaliable drivers;
    "QSQLITE"
    "QODBC"
    "QODBC3"
    "QPSQL"
    "QPSQL7"
    

    刚安装完qt的时候是没有Mysql的驱动的,所以,需要自己来装驱动。

    1. 因为需要自己编译Mysql的驱动,所以需要在官网下载源码版本的Qt,不影响原有Qt的使用,只是用源码来编译驱动。----- 也可以下载dmg的qt,安装的时候选择安装qt源码。
    2. 需要使用 qmake 命令,所以在装完Qt之后先配置环境变量。
    export QTDIR=/Users/yu/Qt5.14.2/5.14.2/clang_64
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib
    export PATH=$PATH:$QTDIR/bin
    

    路径要改成自己电脑的路径
    这个路径是安装包版本的Qt路径。

    1. 进入驱动源码的文件夹 cd Qt源码/qtbase/src/plugins/sqldrivers
    2. 开始编译
    # step 1
    qmake -- MYSQL_PREFIX=/usr/local/mysql
    # step 2
    make sub-mysql
    # step 3
    qmake
    # step 4
    make install
    
    1. 此时在Qt安装目录下就会生成驱动。
      /Users/yu/Qt5.14.2/5.14.2/clang_64/plugins/sqldrivers
      注意这个路径是安装包版本Qt的路径
    2. 查看libqsqlmysql.dylib的链接信息 otool -L libqsqlmysql.dylib
    libqsqlmysql.dylib:
        libqsqlmysql.dylib (compatibility version 0.0.0, current version 0.0.0)
        @rpath/QtSql.framework/Versions/5/QtSql (compatibility version 5.14.0, current version 5.14.2)
        @rpath/QtCore.framework/Versions/5/QtCore (compatibility version 5.14.0, current version 5.14.2)
        /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0)
        /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
        @rpath/libmysqlclient.21.dylib (compatibility version 21.0.0, current version 21.0.0)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 902.1.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.100.1)
    
    1. 如果此时Qt还是无法链接数据库,是由于@rpath/libmysqlclient.21.dylib没有链接到本地的真实路径
    2. 使用命令添加rpath的查找路径 保证@rpath/libmysqlclient.21.dylib能找到本地的libmysqlclient.21.dylib
      install_name_tool -add_rpath /usr/local/mysql-8.0.20-macos10.15-x86_64/lib libqsqlmysql.dylib
    3. 此时就可以使用数据库了
    // 在.pro文件中添加 
    QT += sql
    
    #include <QSqlDatabase>
    #include <QSqlQuery>
    #include <QSqlError>
     
    void mysql::connect_mysql()
    {
        db = QSqlDatabase::addDatabase("QMYSQL");  //连接的MYSQL的数据库驱动
        db.setHostName("localhost");         //主机名
        db.setPort(3306);                    //端口
        db.setDatabaseName("YSTest");          //数据库名
        db.setUserName("root");              //用户名
        db.setPassword("12345678");            //密码
        db.open();
     
        //测试连接
     
        if(!db.open())
        {
            qDebug()<<"不能连接"<<"connect to mysql error"<<db.lastError().text();
            return ;
        }
        else
        {
             qDebug()<<"连接成功"<<"connect to mysql OK";
        }
     
        db.close();
    }
    

    相关文章

      网友评论

        本文标题:MAC环境下Qt Mysql的配置

        本文链接:https://www.haomeiwen.com/subject/lyobohtx.html