mac qt mysql连接 解决QSqlDatabase: MySQL driver not loaded问题

    最近研究在mac下进行qt的开发,到了连接数据库的步骤

void maindb::connectDB() {
    QSqlDatabase database;
    if (QSqlDatabase::contains("icolor")) {
        database = QSqlDatabase::database("icolor");
    } else {
        database=QSqlDatabase::addDatabase("QMYSQL","icolor");//创建数据库连接,并为其命名testConnect
        database.setHostName("127.0.0.1");      //连接数据库主机名,这里需要注意(若填的为”127.0.0.1“,出现不能连接,则改为localhost)
        database.setPort(3306);                 //连接数据库端口号,与设置一致
        database.setUserName("root");          //数据库用户名,与设置一致
        database.setPassword("Likai123!@#");
    }
    if(!database.open()) {
        qDebug()<<"fail to connect mysql:"<

一直报错

QSqlDatabase: MySQL driver not loaded

QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

fail to connect mysql: "Driver not loaded Driver not loaded"

网上找了很多解决方式,各种奇怪的解决方式,但是我一直不生效,后来发现在qt的sqldrivers的目录下,运行otool -L libqsqlmysql.dylib,看到了问题所在

我mac上的mysql是通过brew install安装的,这个目录并不存在,然后我把自己mysql目录下对应的文件拷贝过去,问题就解决了

sudo cp "自己mysql对应的文件" "qt查找的文件"

 

你可能感兴趣的:(mac qt mysql连接 解决QSqlDatabase: MySQL driver not loaded问题)