Mysql Qt5.4 上未加载驱动程序 OS X Yosemite
Mysql Driver not loaded on Qt5.4 OS X Yosemite
我刚刚在 mac 上重新安装了 Yosemite。
安装了 Xcode、Qt5.4 和 mysql CE
我无法让我的应用程序运行,我总是得到
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
我检查了动态库:
otool -L /Users/myself/Qt/5.4/clang_64/plugins/sqldrivers/libqsqlmysql.dylib
还有这个 returns 我:
libqsqlmysql.dylib (compatibility version 0.0.0, current version 0.0.0)
/opt/local/lib/mysql55/mysql/libmysqlclient.18.dylib (compatibility version 18.0.0, current version 18.0.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
/Users/myself/Qt/5.3/clang_64/lib/QtSql.framework/Versions/5/QtSql (compatibility version 5.3.0, current version 5.3.2)
/Users/myself/Qt/5.3/clang_64/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.3.0, current version 5.3.2)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
我没有 /opt/local/lib/mysql55/mysql/libmysqlclient.18.dylib 文件,事实上我的 Yosemite mac 上甚至没有 /opt 文件夹。
可以这样吗?
我尝试自己重新创建 /opt/local/lib/mysql55/mysql/ 文件夹并在其中添加了 libmysqlclient.18.dylib 但我仍然遇到同样的问题。
我现在完全不知道如何解决这个问题,我做错了什么吗?这是 Yosemite 与 MySQL 的错误吗?
我认为我的 .pro 文件和源代码没有问题,因为它曾经在我以前的 Mavericks 配置下工作。
我知道这是一个老问题,但我想我会分享我找到的解决方案(对于那些问题无法通过全新安装解决的人)。
在您的计算机中搜索 libmysqlclient.18.dylib
,并找到实际存在该文件副本的位置(我的在 /usr/local/Cellar/mysql56/5.6.32/lib/
中)。然后使用带有 -change
标志的 install_name_tool
命令将你的 libqmysql.dylib
指向它。下面的命令使用示例:
install_name_tool -change /incorrect/path/to/libmysqlclient.18.dylib /correct/path/to/libmysqlclient.18.dylib /path/to/libqsqlmysql.dylib
确保 运行 对调试版本使用相同的命令,libqsqlmysql_debug.dylib
以便您的调试版本也指向正确的库。
我刚刚在 mac 上重新安装了 Yosemite。 安装了 Xcode、Qt5.4 和 mysql CE
我无法让我的应用程序运行,我总是得到
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
我检查了动态库:
otool -L /Users/myself/Qt/5.4/clang_64/plugins/sqldrivers/libqsqlmysql.dylib
还有这个 returns 我:
libqsqlmysql.dylib (compatibility version 0.0.0, current version 0.0.0)
/opt/local/lib/mysql55/mysql/libmysqlclient.18.dylib (compatibility version 18.0.0, current version 18.0.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
/Users/myself/Qt/5.3/clang_64/lib/QtSql.framework/Versions/5/QtSql (compatibility version 5.3.0, current version 5.3.2)
/Users/myself/Qt/5.3/clang_64/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.3.0, current version 5.3.2)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
我没有 /opt/local/lib/mysql55/mysql/libmysqlclient.18.dylib 文件,事实上我的 Yosemite mac 上甚至没有 /opt 文件夹。 可以这样吗?
我尝试自己重新创建 /opt/local/lib/mysql55/mysql/ 文件夹并在其中添加了 libmysqlclient.18.dylib 但我仍然遇到同样的问题。
我现在完全不知道如何解决这个问题,我做错了什么吗?这是 Yosemite 与 MySQL 的错误吗?
我认为我的 .pro 文件和源代码没有问题,因为它曾经在我以前的 Mavericks 配置下工作。
我知道这是一个老问题,但我想我会分享我找到的解决方案(对于那些问题无法通过全新安装解决的人)。
在您的计算机中搜索 libmysqlclient.18.dylib
,并找到实际存在该文件副本的位置(我的在 /usr/local/Cellar/mysql56/5.6.32/lib/
中)。然后使用带有 -change
标志的 install_name_tool
命令将你的 libqmysql.dylib
指向它。下面的命令使用示例:
install_name_tool -change /incorrect/path/to/libmysqlclient.18.dylib /correct/path/to/libmysqlclient.18.dylib /path/to/libqsqlmysql.dylib
确保 运行 对调试版本使用相同的命令,libqsqlmysql_debug.dylib
以便您的调试版本也指向正确的库。