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
Forum Updated to NodeBB v4.3 + New Features

Unable to use QMYSQL driver on arch linux

Scheduled Pinned Locked Moved Unsolved General and Desktop
5 Posts 3 Posters 383 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 Offline
      Christian EhrlicherC Offline
      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 Offline
          Christian EhrlicherC Offline
          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