Problem with MySQL driver on mac
-
Hi,
I am working on MySQL database on mac, run program generates the following error.QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7I have MySQL installed on my computer (macOS high Sierra) that has the following driver libmysqlclient.20.dylib. The MySQL path is the following:
/usr/local/mysql-8.0.15-macos10.14-x86_64/lib
I have executed the following code:
cd /Users/eduardo/Qt/5.11.1/clang_64/plugins/sqldrivers
otool -L libqsqlmysql.dylibout:
libqsqlmysql.dylib (compatibility version 0.0.0, current version 0.0.0)
@rpath/QtSql.framework/Versions/5/QtSql (compatibility version 5.11.0, current version 5.11.1)
@rpath/QtCore.framework/Versions/5/QtCore (compatibility version 5.11.0, current version 5.11.1)
/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)
/usr/local/mysql/lib/libmysqlclient.20.dylib (compatibility version 20.0.0, current version 20.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 307.5.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.50.2)Does anyone know how I can connect to my database?
I have researched in the net and I have found that it is used, install_name_tool –change ,although I am not sure what it is for. I have tried this but obviously something is wrong.
install_name_tool – change /usr/local/mysql/lib/libmysqlclient.20.dylib /usr/local/mysql-8.0.15-macos10.14-x86_64/lib/libmysqlclient.21.dylib /Users/eduardo/Qt/5.11.1/clang_64/plugins/sqldrivers/libqsqlmysql.dylibThanks for help.
-
@Albert-Huert said in Problem with MySQL drive on mac:
QSqlDatabase: QMYSQL driver not loaded
does your .pro file specify the library and the path to it correctly?
-
Hi,
Start your application with the
QT_DEBUG_PLUGINS
environment variable set to 1. It will show you more information about what is happening with the MySQL plugin. -
@SGaist said in Problem with MySQL drive on mac:
Start your application with the QT_DEBUG_PLUGINS
Hi,
how I start application with the QT_DEBUG_PLUGINS?
thanks for your answer -
@Albert-Huert If you're using QtCreator go to the Run settings of your projects and add it in "Run Environment".
-
@SGaist Hi,
I get this output,Got keys from plugin meta data ("QPSQL7", "QPSQL")
QFactoryLoader::QFactoryLoader() checking directory path "/Users/eduardo/Desktop/build-prueba-Desktop_Qt_5_11_1_clang_64bit-Debug/prueba.app/Contents/MacOS/sqldrivers" ...
Cannot load library /Users/eduardo/Qt/5.11.1/clang_64/plugins/sqldrivers/libqsqlmysql.dylib: (dlopen(/Users/eduardo/Qt/5.11.1/clang_64/plugins/sqldrivers/libqsqlmysql.dylib, 133): Library not loaded: /usr/local/mysql/lib/libmysqlclient.20.dylib
Referenced from: /Users/eduardo/Qt/5.11.1/clang_64/plugins/sqldrivers/libqsqlmysql.dylib
Reason: image not found)
QLibraryPrivate::loadPlugin failed on "/Users/eduardo/Qt/5.11.1/clang_64/plugins/sqldrivers/libqsqlmysql.dylib" : "Cannot load library /Users/eduardo/Qt/5.11.1/clang_64/plugins/sqldrivers/libqsqlmysql.dylib: (dlopen(/Users/eduardo/Qt/5.11.1/clang_64/plugins/sqldrivers/libqsqlmysql.dylib, 133): Library not loaded: /usr/local/mysql/lib/libmysqlclient.20.dylib\n Referenced from: /Users/eduardo/Qt/5.11.1/clang_64/plugins/sqldrivers/libqsqlmysql.dylib\n Reason: image not found)"
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7I have seen that it is recommended to add DYLD_LIBRARY_PATH, but it appears as variable in "run environment".
-
@Albert-Huert said in Problem with MySQL driver on mac:
I have seen that it is recommended to add DYLD_LIBRARY_PATH, but it appears as variable in "run environment".
That's correct.
Append
:/usr/local/mysql/lib/
to it. The semicolon is the separation between paths just as in thePATH
environment variable. -
Great !
Since you have it working now, please mark the thread as solved using the "Topic Tools" button so that other forum users may know a solution has been found :)