PDA

View Full Version : [Qt 5.2 msvc x64] QMYSQL invalid driver handle



konserw
27th December 2013, 15:11
Hello all, as this is my first post ;)
Ad meritum:
QMYSQL driver return incorrect driver handle (i think), as following snippet runs into segmentation error with mysql_ping function:

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", "initialConnection");
if(!db.isValid())
{
qCritical() << "Initial connection invalid!";
return QStringList();
}
db.setHostName("192.168.1.2");
db.setPort(3306);
db.setUserName("kOf_GetUsers");
db.setPassword("");
db.setDatabaseName("kOferta");
db.setConnectOptions("CLIENT_SSL=1;CLIENT_IGNORE_SPACE=1;MYSQL_OPT_RECON NECT=1");
QVariant v = db.driver()->handle();
MYSQL *handle = static_cast<MYSQL *>(v.data());

qDebug() << "connName:" << db.connectionName();
qDebug() << "driver:" << db.driverName();
qDebug() << "options:" << db.connectOptions();
qDebug() << "host:" << db.hostName();
db.driver()->dumpObjectInfo();
db.driver()->dumpObjectTree();
qDebug() << "database error:" << db.lastError().databaseText();
qDebug() << "driver error:" << db.lastError().driverText();
qDebug() << "v.typename:" << v.typeName();
qDebug() << "handle:" << handle;
qDebug() << "mysql error:" << mysql_error(handle);

try
{
qDebug() << "mysql ping:" << mysql_ping(handle);
qDebug() << "mysql error:" << mysql_error(handle);

// mysql_ssl_set(handle, ":/client-key", ":/client-cert", ":/ca-cacert", NULL, NULL);
// mysql_ssl_set(handle, "D:/git/build-kOferta/client-key.pem", "D:/git/build-kOferta/client-cert.pem", "D:/git/build-kOferta/ca-cacert.pem", "D:/git/build-kOferta/", "DHE-RSA-AES256-SHA");
}
catch (std::exception& e)
{
qCritical() << "[mysql_ssl_set] Standard exception: " << e.what();
}
catch(...)
{
qCritical() << "[mysql_ssl_set] Unknown exception";
}
And my log is as follows:


[27.12.2013 15:30:49]: connName: "initialConnection"
[27.12.2013 15:30:49]: driver: "QMYSQL"
[27.12.2013 15:30:49]: options: "CLIENT_SSL=1;CLIENT_IGNORE_SPACE=1"
[27.12.2013 15:30:49]: host: "192.168.1.2"
[27.12.2013 15:30:49]: OBJECT QMYSQLDriver::unnamed
[27.12.2013 15:30:49]: SIGNALS OUT
[27.12.2013 15:30:49]: <None>
[27.12.2013 15:30:49]: SIGNALS IN
[27.12.2013 15:30:49]: <None>
[27.12.2013 15:30:49]: QMYSQLDriver::
[27.12.2013 15:30:49]: database error: ""
[27.12.2013 15:30:49]: driver error: ""
[27.12.2013 15:30:49]: v.typename: MYSQL*
[27.12.2013 15:30:49]: handle: 0x2f9ae0
[27.12.2013 15:30:49]: mysql error: ���R]

What else can i check? What may be the cause? I use libmysql from MySQL Connector C 6.1 6.1.2 - i dont know if it is relevant...

Best regards, konserw