Can't working MYSQL database in qt (QSqlDatabase: available drivers: QSQLITE QODBC QPSQL)
-
Hi i'm trying solve the problem, i really hope that you can help me.
first, i got this error:
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QPSQLI am trying all methods how solve this problem and always got an error -->
QMake has two modes, one mode for generating project files based on
some heuristics, and the other for generating makefiles. Normally you
shouldn't need to specify a mode, as makefile generation is the default
mode for qmake, but you may use this to test qmake on an existing projectMy purpose use database MYSQL in qt, please help me
-
@Lestev You need to build qmysql plug-in, see https://doc.qt.io/qt-5/sql-driver.html
Because of the license it is not delivered with Qt binaries. -
Hi and welcome to devnet,
In addition to @jsulm, you need to grab the Qt sources matching the one that you have installed. And since you are using Qt 6.2 you should follow the instructions provided in the corresponding documentation which does not use qmake at all.
-
Also, did you install cmake ? From one of your errors it seems not...
-
@Lestev
I think you have typed an incorrect character in the command you are trying to copy from somewhere? You have a>
where I do not think you should have, maybe even a<
too. Could you please- Copy and paste all that text here instead of a screenshot, please; and
- Show where/what exactly it is that is telling you what to type as the command.
-
@JonB Hi, thanks, commands:
mkdir build-sqldrivers
cd build-sqldrivers
qt-cmake -G Ninja <qt_installation_path>/Src/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>/<platform> -DMySQL_INCLUDE_DIR="/usr/local/mysql/include" -DMySQL_LIBRARY="/usr/local/mysql/lib/libmysqlclient.<so|dylib>"
cmake --build .
cmake --install .
https://doc.qt.io/qt-6/sql-driver.html#qmysql
I want to connect to database MYSQL, but it is error bother me)...
-
@Lestev
I asked you to copy & paste the command you showed yourself issuing and going wrong in your previous post. The whole of your terminal window's input/output. You now seem to be showing something totally different and unrelated, and not even mentioning that. I don't know what you want help with. Please try to ask some question and stick with it. -
It's one thing to copy commands verbatim, it's another to truly understand what is going on. From what you shown, the backend was at least not installed and from the looks of it, not even built.
Did you check that you have the MySQL client library installed ?
-
@JonB my question is simple how can i create a file libqsqlmysql.dylib if i keep getting error when calling qmake:
I follow the documentation on how to create libqsqlmysql.dylib:
the first is that I choose a folder
after i go to terminal
How can i fix this error? -
By following the instructions from Qt 6 as you were already explained. Instructions which makes no use of qmake as Qt 6 uses cmake as build system.
By not just copy/pasting the commands shown but doing the appropriate substitutions since there are placeholders in the instructions shown in the documentation.
By ensuring that you have the correct dependencies installed.
By checking the configure log.
By checking the build log. -
@Lestev You should really start to CAREFULLY read what others write and also try to understand what you are doing!
You are still using .<so|dylib> in your command and it should be actually apparent that you should replace it by what your platform requires (.dylib on Mac).You also should remove "-G Ninja" if you do not have Ninja.
Also you were asked to post TEXT not pictures, but you keep posting pictures. Is there a reason for that?
-
@jsulm wow! Thank you very much, I did this and succeeded, but the error remained, I added install_name_tool -change /usr/local/mysql-8.0.25-macos11-x86_64/lib/libmysqlclient.21.dylib /usr/local/mysql-8.0 . 25-macos11-x86_64/lib/libmysqlclient.21.dylib/Users/migellestv/Qt/6.2.3/macos/plugins/sqldrivers/libqsqlmysql.dylib
and I succeeded, but error remained:
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QPSQLWhy if i added install_name_tool?
-
@Lestev Did you also do this:
cmake --build . cmake --install .
-
@jsulm said in Can't working MYSQL database in qt (QSqlDatabase: available drivers: QSQLITE QODBC QPSQL):
Did you also do this:
Yes i successed :
cmake --build .
[9/11] Linking CXX shared module plugins/sqldrivers/libqsqlmysql.dylib
ld: warning: linking against a dylib which is not safe for use in application extensions: /usr/local/mysql/lib/libmysqlclient.dylib
[11/11] Linking CXX shared module plugins/sqldrivers/libqsqlite.dylib
migellestev@Migels-MacBook-Pro build-sqldrivers % cmake --install .
-- Install configuration: "RelWithDebInfo"
-- Installing: /Users/migellestev/Qt/6.2.3/macos/lib/cmake/Qt6Sql/Qt6QMYSQLDriverPluginConfig.cmake
-- Installing: /Users/migellestev/Qt/6.2.3/macos/lib/cmake/Qt6Sql/Qt6QMYSQLDriverPluginConfigVersion.cmake
-- Installing: /Users/migellestev/Qt/6.2.3/macos/lib/cmake/Qt6Sql/Qt6QMYSQLDriverPluginConfigVersionImpl.cmake
etc -
@Lestev OK, then we need to debug now.
Do this on console:- Go to the build folder of your application
- Do: export QT_DEBUG_PLUGINS=1
- Run your app from the terminal
- Copy paste the output from terminal to here
You can also set QT_DEBUG_PLUGINS in Run settings of your project in QtCreator.
https://doc.qt.io/qt-5/debug.html -
@jsulm Thanks, i get it, but how i can use run in terminal project?, i wrote:
migellestev@Migels-MacBook-Pro forBeginner % c++ main.cpp
main.cpp:1:10: fatal error: 'QGuiApplication' file not found
#include <QGuiApplication>
^~~~~~~~~~~~~~~~~
1 error generated.