Qt5.2 puede encontrar el controlador MySQL pero no puede cargarlo
-
21-12-2019 - |
Pregunta
Sistema operativo: Win7 Compilador: MINGW4.8 (viene con QT5.2) Enlace a: Fedora Core Lanzamiento 5, Kernel 2.6.15-1.2054_FC5 SMP en un I686
db = new QSqlDatabase();
db->addDatabase("QMYSQL");
db->setHostName("localhost");
db->setDatabaseName("myclinic");
db->setUserName("root");
db->setPassword(",trth12");
qDebug() << loader.errorString();
qDebug() << "drivers: "<< QSqlDatabase::drivers();
if (db->open())
qDebug() << "Success!";
else
qDebug() << db->lastError().text();
Mensajes
qsqldatabase: QMYSQL Driver no cargado QSqlDatabase: Disponible Controladores: QSQLite QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL 7 "The Shared La biblioteca no fue encontrada ".Controladores: ("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7")
"El controlador no cargado no está cargado"
Solución 2
Gracias por la respuesta, pero el problema no es porque carezca el QSQLMYSQL.DLL, pero no tengo el libmysql.dll (parece que esta DLL no viene con Win7).
Aquí hay una Video que le muestra cómo instalar MySQL
Otros consejos
Parece que está perdiendo el complemento MySQL en sus Windows o la instalación de MySQL adecuada en cuyo caso deberá realizarlo instalando todas las bibliotecas de MySQL necesarias en su sistema donde el controlador de complemento QTSQL pueda reconocerlo.
El complemento debe estar disponible debajo de la carpeta de complementos / SQLDRIVERS como una DLL. También podría colocarlo en una carpeta de SQLDRIVER al lado de su solicitud, por lo que algo así:
- yourapplication.exe
- sqldrivers/qsqlmysql4.dll
Necesitarías agarrarlo de alguna manera, o construirlo tú mismo. Esta es la explicación de la documentación de cómo hacerlo:
Cómo construir el complemento QMYSQL en Windows
Debe obtener los archivos de instalación de MySQL. Ejecute Setup.exe y elija "Instalación personalizada". Instale el módulo "Libs e incluyen archivos". Construye el complemento de la siguiente manera (aquí se supone que MySQL está instalado en C: \ MYSQL):
cd %QTDIR%\src\plugins\sqldrivers\mysql
qmake "INCLUDEPATH+=C:\MySQL\include" "LIBS+=C:\MYSQL\MySQL Server <version>\lib\opt\libmysql.lib" mysql.pro
nmake
Si no está utilizando un compilador de Microsoft, reemplace nMake con Hacer en la línea de arriba.
Hay otro problema con tu código. Debe estar usando "127.0.0.1" en lugar de "localhost" para las bases de datos MySQL.
Tuve el mismo PB de usted
La solución es:
Los controladores QT MySQL ya están dentro de QT5 (¡pero no en la versión anterior!)
¡Solo necesita el "libmysql.dll" junto a su aplicación EXE (o en el directorio de Windows!) Encuentra "libmysql.dll" en el directorio "mysql \ mysqlx.x.xx \ lib \ opt".
Si el controlador QT MySQL no se encuentra en libmysql.dll, el error es el mismo que el controlador no se encuentra ...
¡Buena oportunidad para el siguiente!