Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Unable to use QMYSQL driver on arch linux

Unable to use QMYSQL driver on arch linux

Scheduled Pinned Locked Moved Unsolved General and Desktop
5 Posts 3 Posters 558 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    AgustinOrdonez
    wrote on last edited by
    #1

    Hello, I am new to QT and I am trying to use connect to a sql database, I am using QT 6.4.3. My code works well on windows (after moving dlls) but I get the following message on my arch linux system:

    QSqlDatabase: QMYSQL driver not loaded
    QSqlDatabase: available drivers: QODBC QPSQL QMARIADB QMYSQL QSQLITE
    QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins
    Error al conectar
    QWidget: Must construct a QApplication before a QWidget
    

    I tried following this but said commands do nothing. I also run configure -sql-mysql and it also didn't work.

    My libmysqlclient.so is located at /usr/lib

    File structore for Qt/6.4.3/Src/qtbase/src/plugins/sqldrivers

    ├── CMakeFiles
    ├── cmake_install.cmake
    ├── CMakeLists.txt
    ├── configure.cmake
    ├── CTestTestfile.cmake
    ├── db2
    │   ├── CMakeLists.txt
    │   ├── db2.json
    │   ├── main.cpp
    │   ├── qsql_db2.cpp
    │   ├── qsql_db2_p.h
    │   └── README
    ├── ibase
    │   ├── CMakeLists.txt
    │   ├── ibase.json
    │   ├── main.cpp
    │   ├── qsql_ibase.cpp
    │   └── qsql_ibase_p.h
    ├── mysql
    │   ├── CMakeFiles
    │   │   ├── Export
    │   │   │   └── 6daf95e385d7cc8ad37a0af677fcce5d
    │   │   │       ├── Qt6QMYSQLDriverPluginTargets.cmake
    │   │   │       └── Qt6QMYSQLDriverPluginTargets-release.cmake
    │   │   ├── QMYSQLDriverPlugin_autogen.dir
    │   │   │   └── AutogenInfo.json
    │   │   └── QMYSQLDriverPlugin.dir
    │   │       └── QMYSQLDriverPlugin_autogen
    │   ├── cmake_install.cmake
    │   ├── CMakeLists.txt
    │   ├── CTestTestfile.cmake
    │   ├── main.cpp
    │   ├── mysql.json
    │   ├── QMYSQLDriverPlugin.version.in
    │   ├── qsql_mysql.cpp
    │   ├── qsql_mysql_p.h
    │   └── README
    ├── oci
    │   ├── CMakeLists.txt
    │   ├── main.cpp
    │   ├── oci.json
    │   ├── qsql_oci.cpp
    │   ├── qsql_oci_p.h
    │   └── README
    ├── odbc
    │   ├── CMakeLists.txt
    │   ├── main.cpp
    │   ├── odbc.json
    │   ├── qsql_odbc.cpp
    │   ├── qsql_odbc_p.h
    │   └── README
    ├── psql
    │   ├── CMakeLists.txt
    │   ├── main.cpp
    │   ├── psql.json
    │   ├── qsql_psql.cpp
    │   ├── qsql_psql_p.h
    │   └── README
    ├── qt_cmdline.cmake
    ├── qtsqldrivers-config.h
    ├── qtsqldrivers-config_p.h
    ├── README
    └── sqlite
        ├── CMakeFiles
        │   ├── Export
        │   │   └── 6daf95e385d7cc8ad37a0af677fcce5d
        │   │       ├── Qt6QSQLiteDriverPluginTargets.cmake
        │   │       └── Qt6QSQLiteDriverPluginTargets-release.cmake
        │   ├── QSQLiteDriverPlugin_autogen.dir
        │   │   └── AutogenInfo.json
        │   └── QSQLiteDriverPlugin.dir
        │       ├── __
        │       │   └── __
        │       │       └── __
        │       │           └── 3rdparty
        │       │               └── sqlite
        │       └── QSQLiteDriverPlugin_autogen
        ├── cmake_install.cmake
        ├── CMakeLists.txt
        ├── CTestTestfile.cmake
        ├── QSQLiteDriverPlugin.version.in
        ├── qsql_sqlite.cpp
        ├── qsql_sqlite_p.h
        ├── README
        ├── smain.cpp
        └── sqlite.json
    
    Christian EhrlicherC 1 Reply Last reply
    0
    • A AgustinOrdonez

      Hello, I am new to QT and I am trying to use connect to a sql database, I am using QT 6.4.3. My code works well on windows (after moving dlls) but I get the following message on my arch linux system:

      QSqlDatabase: QMYSQL driver not loaded
      QSqlDatabase: available drivers: QODBC QPSQL QMARIADB QMYSQL QSQLITE
      QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins
      Error al conectar
      QWidget: Must construct a QApplication before a QWidget
      

      I tried following this but said commands do nothing. I also run configure -sql-mysql and it also didn't work.

      My libmysqlclient.so is located at /usr/lib

      File structore for Qt/6.4.3/Src/qtbase/src/plugins/sqldrivers

      ├── CMakeFiles
      ├── cmake_install.cmake
      ├── CMakeLists.txt
      ├── configure.cmake
      ├── CTestTestfile.cmake
      ├── db2
      │   ├── CMakeLists.txt
      │   ├── db2.json
      │   ├── main.cpp
      │   ├── qsql_db2.cpp
      │   ├── qsql_db2_p.h
      │   └── README
      ├── ibase
      │   ├── CMakeLists.txt
      │   ├── ibase.json
      │   ├── main.cpp
      │   ├── qsql_ibase.cpp
      │   └── qsql_ibase_p.h
      ├── mysql
      │   ├── CMakeFiles
      │   │   ├── Export
      │   │   │   └── 6daf95e385d7cc8ad37a0af677fcce5d
      │   │   │       ├── Qt6QMYSQLDriverPluginTargets.cmake
      │   │   │       └── Qt6QMYSQLDriverPluginTargets-release.cmake
      │   │   ├── QMYSQLDriverPlugin_autogen.dir
      │   │   │   └── AutogenInfo.json
      │   │   └── QMYSQLDriverPlugin.dir
      │   │       └── QMYSQLDriverPlugin_autogen
      │   ├── cmake_install.cmake
      │   ├── CMakeLists.txt
      │   ├── CTestTestfile.cmake
      │   ├── main.cpp
      │   ├── mysql.json
      │   ├── QMYSQLDriverPlugin.version.in
      │   ├── qsql_mysql.cpp
      │   ├── qsql_mysql_p.h
      │   └── README
      ├── oci
      │   ├── CMakeLists.txt
      │   ├── main.cpp
      │   ├── oci.json
      │   ├── qsql_oci.cpp
      │   ├── qsql_oci_p.h
      │   └── README
      ├── odbc
      │   ├── CMakeLists.txt
      │   ├── main.cpp
      │   ├── odbc.json
      │   ├── qsql_odbc.cpp
      │   ├── qsql_odbc_p.h
      │   └── README
      ├── psql
      │   ├── CMakeLists.txt
      │   ├── main.cpp
      │   ├── psql.json
      │   ├── qsql_psql.cpp
      │   ├── qsql_psql_p.h
      │   └── README
      ├── qt_cmdline.cmake
      ├── qtsqldrivers-config.h
      ├── qtsqldrivers-config_p.h
      ├── README
      └── sqlite
          ├── CMakeFiles
          │   ├── Export
          │   │   └── 6daf95e385d7cc8ad37a0af677fcce5d
          │   │       ├── Qt6QSQLiteDriverPluginTargets.cmake
          │   │       └── Qt6QSQLiteDriverPluginTargets-release.cmake
          │   ├── QSQLiteDriverPlugin_autogen.dir
          │   │   └── AutogenInfo.json
          │   └── QSQLiteDriverPlugin.dir
          │       ├── __
          │       │   └── __
          │       │       └── __
          │       │           └── 3rdparty
          │       │               └── sqlite
          │       └── QSQLiteDriverPlugin_autogen
          ├── cmake_install.cmake
          ├── CMakeLists.txt
          ├── CTestTestfile.cmake
          ├── QSQLiteDriverPlugin.version.in
          ├── qsql_sqlite.cpp
          ├── qsql_sqlite_p.h
          ├── README
          ├── smain.cpp
          └── sqlite.json
      
      Christian EhrlicherC Online
      Christian EhrlicherC Online
      Christian Ehrlicher
      Lifetime Qt Champion
      wrote on last edited by
      #2

      As laways when debugging plugins make sure to run your app with QT_DEBUG_PLUGINS to see why the loading of the plugin fails.

      Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
      Visit the Qt Academy at https://academy.qt.io/catalog

      A 1 Reply Last reply
      1
      • Christian EhrlicherC Christian Ehrlicher

        As laways when debugging plugins make sure to run your app with QT_DEBUG_PLUGINS to see why the loading of the plugin fails.

        A Offline
        A Offline
        AgustinOrdonez
        wrote on last edited by
        #3

        @Christian-Ehrlicher said in Unable to use QMYSQL driver on arch linux:

        QT_DEBUG_PLUGINS

        Thanks for the reply, this is what I got:

        qt.core.plugin.factoryloader: checking directory path "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers" ...
        qt.core.plugin.factoryloader: looking at "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlodbc.so"
        qt.core.plugin.loader: Found metadata in lib /home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlodbc.so, metadata=
        {
            "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
            "MetaData": {
                "Keys": [
                    "QODBC"
                ]
            },
            "archlevel": 1,
            "className": "QODBCDriverPlugin",
            "debug": false,
            "version": 394240
        }
        
        
        qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QODBC")
        qt.core.plugin.factoryloader: looking at "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlpsql.so"
        qt.core.plugin.loader: Found metadata in lib /home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlpsql.so, metadata=
        {
            "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
            "MetaData": {
                "Keys": [
                    "QPSQL"
                ]
            },
            "archlevel": 1,
            "className": "QPSQLDriverPlugin",
            "debug": false,
            "version": 394240
        }
        
        
        qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QPSQL")
        qt.core.plugin.factoryloader: looking at "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so"
        qt.core.plugin.loader: Found metadata in lib /home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so, metadata=
        {
            "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
            "MetaData": {
                "Keys": [
                    "QMYSQL",
                    "QMARIADB"
                ]
            },
            "archlevel": 1,
            "className": "QMYSQLDriverPlugin",
            "debug": false,
            "version": 394240
        }
        
        
        qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QMYSQL", "QMARIADB")
        qt.core.plugin.factoryloader: looking at "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlite.so"
        qt.core.plugin.loader: Found metadata in lib /home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlite.so, metadata=
        {
            "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
            "MetaData": {
                "Keys": [
                    "QSQLITE"
                ]
            },
            "archlevel": 1,
            "className": "QSQLiteDriverPlugin",
            "debug": false,
            "version": 394240
        }
        
        
        qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QSQLITE")
        qt.core.library: "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so" cannot load: Cannot load library /home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so: (libmysqlclient.so.21: cannot open shared object file: No such file or directory)
        qt.core.plugin.loader: QLibraryPrivate::loadPlugin failed on "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so" : "Cannot load library /home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so: (libmysqlclient.so.21: cannot open shared object file: No such file or directory)"
        QSqlDatabase: QMYSQL driver not loaded
        QSqlDatabase: available drivers: QODBC QPSQL QMARIADB QMYSQL QSQLITE
        QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins
        Error al conectar
        QWidget: Must construct a QApplication before a QWidget
        
        Christian EhrlicherC C 2 Replies Last reply
        0
        • A AgustinOrdonez

          @Christian-Ehrlicher said in Unable to use QMYSQL driver on arch linux:

          QT_DEBUG_PLUGINS

          Thanks for the reply, this is what I got:

          qt.core.plugin.factoryloader: checking directory path "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers" ...
          qt.core.plugin.factoryloader: looking at "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlodbc.so"
          qt.core.plugin.loader: Found metadata in lib /home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlodbc.so, metadata=
          {
              "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
              "MetaData": {
                  "Keys": [
                      "QODBC"
                  ]
              },
              "archlevel": 1,
              "className": "QODBCDriverPlugin",
              "debug": false,
              "version": 394240
          }
          
          
          qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QODBC")
          qt.core.plugin.factoryloader: looking at "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlpsql.so"
          qt.core.plugin.loader: Found metadata in lib /home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlpsql.so, metadata=
          {
              "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
              "MetaData": {
                  "Keys": [
                      "QPSQL"
                  ]
              },
              "archlevel": 1,
              "className": "QPSQLDriverPlugin",
              "debug": false,
              "version": 394240
          }
          
          
          qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QPSQL")
          qt.core.plugin.factoryloader: looking at "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so"
          qt.core.plugin.loader: Found metadata in lib /home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so, metadata=
          {
              "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
              "MetaData": {
                  "Keys": [
                      "QMYSQL",
                      "QMARIADB"
                  ]
              },
              "archlevel": 1,
              "className": "QMYSQLDriverPlugin",
              "debug": false,
              "version": 394240
          }
          
          
          qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QMYSQL", "QMARIADB")
          qt.core.plugin.factoryloader: looking at "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlite.so"
          qt.core.plugin.loader: Found metadata in lib /home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlite.so, metadata=
          {
              "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
              "MetaData": {
                  "Keys": [
                      "QSQLITE"
                  ]
              },
              "archlevel": 1,
              "className": "QSQLiteDriverPlugin",
              "debug": false,
              "version": 394240
          }
          
          
          qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QSQLITE")
          qt.core.library: "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so" cannot load: Cannot load library /home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so: (libmysqlclient.so.21: cannot open shared object file: No such file or directory)
          qt.core.plugin.loader: QLibraryPrivate::loadPlugin failed on "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so" : "Cannot load library /home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so: (libmysqlclient.so.21: cannot open shared object file: No such file or directory)"
          QSqlDatabase: QMYSQL driver not loaded
          QSqlDatabase: available drivers: QODBC QPSQL QMARIADB QMYSQL QSQLITE
          QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins
          Error al conectar
          QWidget: Must construct a QApplication before a QWidget
          
          Christian EhrlicherC Online
          Christian EhrlicherC Online
          Christian Ehrlicher
          Lifetime Qt Champion
          wrote on last edited by Christian Ehrlicher
          #4

          @AgustinOrdonez said in Unable to use QMYSQL driver on arch linux:

          qt.core.library: "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so" cannot load: Cannot load library /home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so: (libmysqlclient.so.21: cannot open shared object file: No such file or directory)
          qt.core.plugin.loader: QLibraryPrivate::loadPlugin failed on "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so" : "Cannot load library /home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so: (libmysqlclient.so.21: cannot open shared object file: No such file or directory)"

          As you can see libmysqlclient.so.21 is missing

          Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
          Visit the Qt Academy at https://academy.qt.io/catalog

          1 Reply Last reply
          2
          • A AgustinOrdonez

            @Christian-Ehrlicher said in Unable to use QMYSQL driver on arch linux:

            QT_DEBUG_PLUGINS

            Thanks for the reply, this is what I got:

            qt.core.plugin.factoryloader: checking directory path "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers" ...
            qt.core.plugin.factoryloader: looking at "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlodbc.so"
            qt.core.plugin.loader: Found metadata in lib /home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlodbc.so, metadata=
            {
                "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
                "MetaData": {
                    "Keys": [
                        "QODBC"
                    ]
                },
                "archlevel": 1,
                "className": "QODBCDriverPlugin",
                "debug": false,
                "version": 394240
            }
            
            
            qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QODBC")
            qt.core.plugin.factoryloader: looking at "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlpsql.so"
            qt.core.plugin.loader: Found metadata in lib /home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlpsql.so, metadata=
            {
                "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
                "MetaData": {
                    "Keys": [
                        "QPSQL"
                    ]
                },
                "archlevel": 1,
                "className": "QPSQLDriverPlugin",
                "debug": false,
                "version": 394240
            }
            
            
            qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QPSQL")
            qt.core.plugin.factoryloader: looking at "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so"
            qt.core.plugin.loader: Found metadata in lib /home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so, metadata=
            {
                "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
                "MetaData": {
                    "Keys": [
                        "QMYSQL",
                        "QMARIADB"
                    ]
                },
                "archlevel": 1,
                "className": "QMYSQLDriverPlugin",
                "debug": false,
                "version": 394240
            }
            
            
            qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QMYSQL", "QMARIADB")
            qt.core.plugin.factoryloader: looking at "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlite.so"
            qt.core.plugin.loader: Found metadata in lib /home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlite.so, metadata=
            {
                "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
                "MetaData": {
                    "Keys": [
                        "QSQLITE"
                    ]
                },
                "archlevel": 1,
                "className": "QSQLiteDriverPlugin",
                "debug": false,
                "version": 394240
            }
            
            
            qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QSQLITE")
            qt.core.library: "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so" cannot load: Cannot load library /home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so: (libmysqlclient.so.21: cannot open shared object file: No such file or directory)
            qt.core.plugin.loader: QLibraryPrivate::loadPlugin failed on "/home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so" : "Cannot load library /home/dioswilson1/Qt/6.4.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so: (libmysqlclient.so.21: cannot open shared object file: No such file or directory)"
            QSqlDatabase: QMYSQL driver not loaded
            QSqlDatabase: available drivers: QODBC QPSQL QMARIADB QMYSQL QSQLITE
            QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins
            Error al conectar
            QWidget: Must construct a QApplication before a QWidget
            
            C Offline
            C Offline
            ChrisW67
            wrote on last edited by
            #5

            @AgustinOrdonez said in Unable to use QMYSQL driver on arch linux:

            QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins

            This also looks like there is something else missing in your program. Have you created and initialised a QCoreApplication (or QApplication) in your application before attempting any database operations?

            1 Reply Last reply
            1

            • Login

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • Users
            • Groups
            • Search
            • Get Qt Extensions
            • Unsolved