QT/C++ QSqlDatabase:OS X 上未加载 QMYSQL 驱动程序
QT/C++ QSqlDatabase: QMYSQL driver not loaded on OS X
我正在使用
OS X: 10.12.4
Qt Creator 4.0.2
MySQL 5.0.12(好像是,不确定)
C++
在 QT 下,我正在尝试通过以下代码连接到 mysql 数据库:
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("sql104.rf.gd"); // 185.27.134.10
//db.setPort(3306);
db.setUserName("correctname");
db.setPassword("correctpw");
db.setDatabaseName("rfgd_19926673_shop");
if (db.open()){
ui->label->setText("success");
} else {
i->label->setText("fail");
}
它失败了
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
我试过了,没有结果
QPluginLoader loader;
loader.setFileName("/Users/Ivan/Qt/5.7/clang_64/plugins/sqldrivers/libqsqlmysql.dylib");
它returns
Cannot load library
/Users/Ivan/Qt/5.7/clang_64/plugins/sqldrivers/libqsqlmysql.dylib: (dlopen(/Users/Ivan/Qt/5.7/clang_64/plugins/sqldrivers/libqsqlmysql.dylib, 5): Library not loaded: /opt/local/lib/mysql55/mysql/libmysqlclient.18.dylib
Referenced from: /Users/Ivan/Qt/5.7/clang_64/plugins/sqldrivers/libqsqlmysql.dylib
Reason: image not found)
/Users/Ivan/build-CourierHelperDesktop-Desktop_Qt_5_7_0_clang_64bit-Release/CourierHelperDesktop.app/Contents/MacOS
我只有
/usr/local/mysql-5.7.17-macos10.12-x86_64/lib/lib/mysqlclient.20.dylib
尝试过
mkdir /opt/local/lib/mysql55/mysql/
cp /usr/local/mysql-5.7.17-macos10.12-x86_64/lib/lib/mysqlclient.20.dylib /opt/local/lib/mysql55/mysql
没有帮助。
求求你帮帮我。我真的卡住了。
我在 macOS High Sierra (10.13.4) 上遇到了这个问题:
- mysql-5.6.40-macos10.13-x86_64.dmg
- mysql-connector-c-6.1.11-macos10.12-x86_64.dmg
- Qt 5.10.1
- clang:Apple LLVM 版本 9.0.0 (clang-900.0.39.2) 目标:x86_64-apple-darwin17.5.0
你很幸运,我一开始没有收到这条消息。我必须通过在 项目属性 > 运行 上将名为 QT_DEBUG_PLUGINS
的新环境变量设置为 1
来启用更多调试信息。再次执行我的应用程序显示出与您的几乎相同的错误消息。
要解决这个问题,首先需要找到libmysqlclient.18.dylib
在电脑中的位置:
$ find / -iname libmysqlclient.18.dylib
/usr/local/mysql/lib/libmysqlclient.18.dylib
太好了,现在找到 Qt 存储其插件的位置:
$ qmake -query QT_INSTALL_PLUGINS
/Users/karlphillip/Qt/5.10.1/clang_64/plugins
并使用此信息在您的终端上创建一个新的环境变量,以使下一部分更容易:
$ export QT_PLUGIN_PATH=`qmake -query QT_INSTALL_PLUGINS`
最后,转到 sqldrivers
inside Qt plugins 目录并使用您之前找到的信息更新共享库路径:
$ cd /Users/karlphillip/Qt/5.10.1/clang_64/plugins/sqldrivers
$ install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib $QT_PLUGIN_PATH/sqldrivers/libqsqlmysql.dylib
完成。
我正在使用
OS X: 10.12.4
Qt Creator 4.0.2
MySQL 5.0.12(好像是,不确定)
C++
在 QT 下,我正在尝试通过以下代码连接到 mysql 数据库:
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("sql104.rf.gd"); // 185.27.134.10
//db.setPort(3306);
db.setUserName("correctname");
db.setPassword("correctpw");
db.setDatabaseName("rfgd_19926673_shop");
if (db.open()){
ui->label->setText("success");
} else {
i->label->setText("fail");
}
它失败了
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
我试过了,没有结果
QPluginLoader loader;
loader.setFileName("/Users/Ivan/Qt/5.7/clang_64/plugins/sqldrivers/libqsqlmysql.dylib");
它returns
Cannot load library
/Users/Ivan/Qt/5.7/clang_64/plugins/sqldrivers/libqsqlmysql.dylib: (dlopen(/Users/Ivan/Qt/5.7/clang_64/plugins/sqldrivers/libqsqlmysql.dylib, 5): Library not loaded: /opt/local/lib/mysql55/mysql/libmysqlclient.18.dylib
Referenced from: /Users/Ivan/Qt/5.7/clang_64/plugins/sqldrivers/libqsqlmysql.dylib
Reason: image not found)
/Users/Ivan/build-CourierHelperDesktop-Desktop_Qt_5_7_0_clang_64bit-Release/CourierHelperDesktop.app/Contents/MacOS
我只有
/usr/local/mysql-5.7.17-macos10.12-x86_64/lib/lib/mysqlclient.20.dylib
尝试过
mkdir /opt/local/lib/mysql55/mysql/
cp /usr/local/mysql-5.7.17-macos10.12-x86_64/lib/lib/mysqlclient.20.dylib /opt/local/lib/mysql55/mysql
没有帮助。
求求你帮帮我。我真的卡住了。
我在 macOS High Sierra (10.13.4) 上遇到了这个问题:
- mysql-5.6.40-macos10.13-x86_64.dmg
- mysql-connector-c-6.1.11-macos10.12-x86_64.dmg
- Qt 5.10.1
- clang:Apple LLVM 版本 9.0.0 (clang-900.0.39.2) 目标:x86_64-apple-darwin17.5.0
你很幸运,我一开始没有收到这条消息。我必须通过在 项目属性 > 运行 上将名为 QT_DEBUG_PLUGINS
的新环境变量设置为 1
来启用更多调试信息。再次执行我的应用程序显示出与您的几乎相同的错误消息。
要解决这个问题,首先需要找到libmysqlclient.18.dylib
在电脑中的位置:
$ find / -iname libmysqlclient.18.dylib
/usr/local/mysql/lib/libmysqlclient.18.dylib
太好了,现在找到 Qt 存储其插件的位置:
$ qmake -query QT_INSTALL_PLUGINS
/Users/karlphillip/Qt/5.10.1/clang_64/plugins
并使用此信息在您的终端上创建一个新的环境变量,以使下一部分更容易:
$ export QT_PLUGIN_PATH=`qmake -query QT_INSTALL_PLUGINS`
最后,转到 sqldrivers
inside Qt plugins 目录并使用您之前找到的信息更新共享库路径:
$ cd /Users/karlphillip/Qt/5.10.1/clang_64/plugins/sqldrivers
$ install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib $QT_PLUGIN_PATH/sqldrivers/libqsqlmysql.dylib
完成。