Qt, mysql, openSuse i "driver not loaded"

0

Mam problem z polaczeniem sie z baza mysql z qt.

    licensesDatabase.addDatabase("QMYSQL");
    licensesDatabase.setHostName("127.0.0.1");
    licensesDatabase.setPort(3306);
    licensesDatabase.setDatabaseName("...");
    licensesDatabase.setUserName("...");
    licensesDatabase.setPassword("...");

    bool ok = licensesDatabase.open();

    if ( !ok ) {
        QSqlError le(licensesDatabase.lastError());
        qDebug() <<this<<"!FATAL ERROR! : UNABLE TO CONNECT TO DATABASE!!!";
        qDebug() <<this<<"databaseError: "<<le.databaseText();
        qDebug() <<this<<"driverError: "<<le.driverText();
        qDebug() <<this<<"available drivers:"<<licensesDatabase.drivers();
        return 1;
    }

wywala nastepujace bledy:

QTELicenseManagerServer(0x61b3c0) !FATAL ERROR! : UNABLE TO CONNECT TO DATABASE!!!
QTELicenseManagerServer(0x61b3c0) databaseError: "Driver not loaded"
QTELicenseManagerServer(0x61b3c0) driverError: "Driver not loaded"
QTELicenseManagerServer(0x61b3c0) available drivers: ("QSQLITE", "QSQLITE3", "QMYSQL3", "QMYSQL", "QPSQL7", "QPSQL")

Jak widac biblioteka jest QMYSQL zainstalowana.

/usr/lib64/qt4/plugins/sqldrivers> ls -la
total 288
drwxr-xr-x 2 root root 4096 Oct 6 10:07 .
drwxr-xr-x 14 root root 4096 Apr 21 13:23 ..
-rwxr-xr-x 1 root root 69032 Feb 20 2011 libqsqlite3.so
-rwxr-xr-x 1 root root 52576 Feb 19 2011 libqsqlite.so
-rwxr-xr-x 1 root root 77632 Feb 20 2011 libqsqlmysql.so
-rwxr-xr-x 1 root root 85800 Feb 20 2011 libqsqlpsql.so

Ktos ma jakis pomysl dlaczego "Driver not loaded"?

0

dodałeś w projekcie "QT += sql" ?

0

No przeciez sie kompiluje, dodalem.

0

Hm....żeby qDebug() <<this<<"available drivers:"<<licensesDatabase.drivers(); nie zwócił na liście QMYSQLa to bym podejrzewał iż ten driver coś krzywo się zbudował.Jednak jakby nadal coś nie banglało to zbuduj owego drivera na swojej maszynie,tak żeby przynajmniej tą ewentualność wykluczyć.
A weź Egon spróbuj wyrzucić z kodu:

licensesDatabase.setDatabaseName("...");
    licensesDatabase.setUserName("...");
    licensesDatabase.setPassword("...");

Kolejna rzecz,upewnij się pod MySQLem że tam masz przynajmniej 1 bazę stworzoną poprzez create database somename,np "dupa".Bo to setDatabaseName("...") tak mi się jakoś niezbyt podoba

0

Moze ustawic LD_LIBRARY_PATH odpowiednio?

0

Dobra sam zalamerzylem :D

zamiast:

    licensesDatabase.addDatabase("QMYSQL");

ma byc:

licensesDatabase = QSqlDatabase::addDatabase("QMYSQL");

Masakra, caly dzien na to zmarnowalem :/

1 użytkowników online, w tym zalogowanych: 0, gości: 1