Использование MySQL в QT 5.3

Рейтинг: 1Ответов: 1Опубликовано: 06.03.2015

Здравствуйте. Пытаюсь использовать MYSQL в QT, такой код:

 QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
 db.setDatabaseName("user_actions_db");
 db.setUserName("root");
 db.setHostName("127.0.0.1");
 db.setPassword("1234");
 if (!db.open()){
    return false;
 }
 return true;

Такой результат:

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

Как исправить проблему?

Ответы

▲ 2

Решение проблемы с драйвером здесь.

Для Qt 5 и выше обычно mysql драйвер уже идёт в стандартной поставке. Для уточнения переходим в каталог установки Qt а далее в папку с драйверами, у меня это /opt/Qt/Qt5.5.0/5.5/gcc_64/plugins/sqldrivers по идее там должен быть libqsqlmysql.so

Если он там есть, может быть, что не найдена какая-либо зависимость для libqsqlmysql.so проверять так: ldd libqsqlmysql.so скорее всего будет не найдена (not found) зависимость libmysqlclient_r.so.16

Можно, конечно, только его и поставить, вот так: [32]

wget http://launchpadlibrarian.net/75949497/libmysqlclient16_5.1.58-1ubuntu1_i386.deb
sudo dpkg -i ./libmysqlclient16_5.1.58-1ubuntu1_i386.deb

[64]

wget http://launchpadlibrarian.net/94808408/libmysqlclient16_5.1.58-1ubuntu5_amd64.deb
sudo dpkg -i ./libmysqlclient16_5.1.58-1ubuntu5_amd64.deb

Проверяем: ldd libqsqlmysql.so Может быть так же не доступны быть: libssl.so.10 и libcrypto.so.10 Ставить их так:

sudo apt-get update
sudo apt-get install libssl1.0.0 libssl-devcd /lib/x86_64-linux-gnu
sudo ln -s libssl.so.1.0.0 libssl.so.10
sudo ln -s libcrypto.so.1.0.0 libcrypto.so.10

Впринципе, можно на этом остановиться,