2014-01-09 5 views
1

Операционная система: win7 компилятор: mingw4.8 (поставляется с Qt5.2) ссылка на: Fedora core release 5, kernel 2.6.15-1.2054_FC5 smp на с i686Qt5.2 может найти драйвер mysql, но не может его загрузить

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(); 

сообщения

QSqlDatabase: водитель QMYSQL не загружен QSqlDatabase: доступны драйвера: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL 7 «общая библиотека не найдена» драйвера: («QSQLITE», «QMYSQL «QMYSQL3», , «QODBC3» «QODBC», «QPSQL», «QPSQL7»)

«Драйвер не загружен драйвер не загружен»

+0

Возможный дубликат [qt5.1.1 mysql ubuntu QMYSQL драйвер не загружен] (http://stackoverflow.com/questions/21476529/qt5-1-1-mysql-ubuntu-qmysql-driver-not-loaded) – Smar

+0

@ Smar это больше окна. Есть один для этого (url, на который я могу поработать молотком)? Я закрыл предыдущий, который вы сделали сегодня. – Drew

+0

@Drew. Похоже, я потратил слишком мало времени на чтение этого ... Первое предложение говорит о Windows, которое связано с Fedora, ошибка, которую это дает, более или менее такая же. Теги не содержат ни OS, существует ли соглашение, что конкретный OS-вопрос должен иметь тег 'windows'? Также должно быть изменено описание вопроса? Как есть, я хотел бы проголосовать за это, так как неясно ... – Smar

ответ

0

Спасибо за ответ, но проблема не в том, что мне не хватает qsqlmysql.dll, но у меня нет libmysql.dll (похоже, что эта DLL не поставляется с win7).

Вот video, который покажет вам, как установить MySQL

+1

Ваш вопрос, по-видимому, отсутствовал. Я ожидал, что mysql будет установлен, если вы хотите использовать mysql. :) В любом случае, я обновил свой ответ соответственно ... – lpapp

+0

Благодарим за вашу искренность, хотя для этой задачи достаточно плагина mysql Qt5.2 (извините за мою неосведомленность) – user3172211

2

Вы, кажется, либо отсутствует MySQL плагин на вашей Windows или собственно установки mysql, в этом случае вам нужно будет это сделать, установив все необходимые библиотеки mysql в вашей системе, где драйвер QtSql плагина сможет ее распознать.

Плагин должен быть доступен под папкой plugins/sqldrivers в виде dll. Вы можете также поместить его в папку sqldrivers рядом приложения, так как это somethiing:

- yourapplication.exe 
- sqldrivers/qsqlmysql4.dll 

Вам нужно будет захватить его как-нибудь, или построить его самостоятельно. Это объяснение в документации, как это сделать так:

How to Build the QMYSQL Plugin on Windows

Вы должны получить установочные файлы MySQL. Запустите SETUP.EXE и выберите «Custom Install». Установите модуль «Libs & Include Files». Соберите плагин следующим образом (здесь предполагается, что MySQL устанавливается в 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 

Если вы не используете компилятор Microsoft, замените Nmake с замыкающими в строке выше.

Есть еще одна проблема с вашим кодом. Вы должны использовать «127.0.0.1» вместо «localhost» для баз данных mysql.

0

Я была такая же Pb вас

Решение:

Драйверы Qt MySQL уже внутри Qt5 (но не в предыдущая версия!)

Вам просто нужно «libmysql.dll» рядом с вашим exe-приложением (или в каталоге Windows!) Вы найдете «libmysql.dll» в «mysql \ mysqlX.X.XX \ lib \ opt» каталог.

Если драйвер Qt MySQL не найден libmysql.dll ошибка совпадает с драйвером, который не найден ...

Хороший шанс для следующего!

Смежные вопросы