QMYSQL driver not loaded

Iniciado por AprendizPRG, 4 Agosto 2017, 18:20 PM

0 Miembros y 4 Visitantes están viendo este tema.

AprendizPRG

hola estoy tratando de conectar qt con mysql en debian pero me arroja este error

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7


en la carpeta de driverssql de qt se encuentra instalado el libqsqlmysql.so sin embargo no reconoce el driver

tambien lo compile como dice en la doc de la pagina de qt pero persiste el error

/******************   al ejecutar este codigo me muestra el error que el driver no ha sido cargado

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel resultado("");
    if (QSqlDatabase::isDriverAvailable("QMYSQL")) {
        QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
        db.setHostName("localhost");
        db.setDatabaseName("agenda");
        db.setUserName("root");
        db.setPassword("root");
        if ( db.open() )
           resultado.setText("Bien, base de datos cargada");
        else {
             QSqlError mensaje = db.lastError();
            resultado.setText(mensaje.text());
            }

    }
    else
        resultado.setText("No hay driver");
    resultado.show();
    return app.exec();
}


/*********************** pero de esta manera aparece que el driver ha sido cargado
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel resultado("");
    if (QSqlDatabase::isDriverAvailable("QMYSQL")) {
     
           resultado.setText("Bien,driver cargado");
       

    }
    else
        resultado.setText("No hay driver");
    resultado.show();
    return app.exec();
}

ivancea96

¿Copiando el .so a la carpeta en la que está el programa funciona?

AprendizPRG

gracias

pero eso ya lo intente y no funciona


AprendizPRG

 javascript:void(0); nada de nada

AprendizPRG

hola nuevamente

hay alguna posibilidad que mysql este evitando la conexion con qt

ya que por medio del debugger de qt he probado pero el programa falla al llamar a db.open

ivancea96

Yo no te voy a poder seguir respondiendo, que no uso Qt. Lo mejor es que busques casos similares por google, o en los foros de Qt, o busques tutoriales sobre esto para ver qué falta.

AprendizPRG

hola amigo

gracias de todos modos
pero llevo dias buscando por la web y no logro solucionar el problema


saludos!

Becerra

Hola

Ese error es el más puñetero de Qt, ya que realmente no te da una pista e lo que está pasando.

No indicas el sistema operativo, lo que te ocurre es que tienes que copiar las .dll de mysql a una carpeta en la que Qt las encuentre.

Si estás en linux, muévete a la carpeta donde están los drivers de Qt y ejecuta el comando

ldd libqsqlmysql.so

Te dará una lista de las dependencias del driver y podrás ver lo que te falta. si estás en win no se, es copiar un par de .dll de mysql a la carpeta bin de qt  o a system de windows, pero no sé seguro ni la ubicación correcta ni los archivos que son.

Un saludo
Buenas preguntas obtienen mejores respuestas

AprendizPRG

hola esta fue la salida

al parecer es libmysqlclient_16


ldd libqsqlmysql.so
./libqsqlmysql.so: /usr/lib/x86_64-linux-gnu/libmysqlclient_r.so.16: version `libmysqlclient_16' not found (required by ./libqsqlmysql.so)
   linux-vdso.so.1 (0x00007ffecaff3000)
   libmysqlclient_r.so.16 => /usr/lib/x86_64-linux-gnu/libmysqlclient_r.so.16 (0x00007f90437a6000)
   libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f904358c000)
   libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f9043354000)
   libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007f904313c000)
   libssl.so.10 => not found
   libcrypto.so.10 => not found
   libQt5Sql.so.5 => /opt/Qt5.6.2/5.6/gcc_64/plugins/sqldrivers/./../../lib/libQt5Sql.so.5 (0x00007f9042ef6000)
   libQt5Core.so.5 => /opt/Qt5.6.2/5.6/gcc_64/plugins/sqldrivers/./../../lib/libQt5Core.so.5 (0x00007f90427df000)
   libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f90425c2000)
   libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f9042240000)
   libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9041f3c000)
   libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f9041d23000)
   libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9041985000)
   libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9041781000)
   libicui18n.so.56 => /opt/Qt5.6.2/5.6/gcc_64/plugins/sqldrivers/./../../lib/libicui18n.so.56 (0x00007f90412e7000)
   libicuuc.so.56 => /opt/Qt5.6.2/5.6/gcc_64/plugins/sqldrivers/./../../lib/libicuuc.so.56 (0x00007f9040f2f000)
   libicudata.so.56 => /opt/Qt5.6.2/5.6/gcc_64/plugins/sqldrivers/./../../lib/libicudata.so.56 (0x00007f903f54c000)
   libgthread-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007f903f348000)
   librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f903f140000)
   libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f903ee2c000)
   /lib64/ld-linux-x86-64.so.2 (0x000055cc9f2ce000)
   libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f903ebb9000)