在将Qt从5.5更新到5.6之后,QSqlDatabase:open始终返回true --即使主机无法访问并且/或用户名/密码/数据库设置为胡说八道。
测试代码:
QSqlDatabase* db = new QSqlDatabase(QSqlDatabase::addDatabase("QMYSQL", "TESTCONNECTION"));
db->setHostName(ip);
db->setPort(port);
db->setUserName(user);
db->setPassword(pwd);
db->setDatabaseName(dbName);
db->setConnectOptions("MYSQL_OPT_CONNECT_TIMEOUT=4");
bool ok = db->open();
我根据最新的mysql版本(5.6.x)编译了Qt。
发布于 2015-10-08 13:13:08
这实际上是一个报告的bug:QSqlDatabase::open始终使用QMYSQL返回true。该页面显示,它是在15/9/15 7:03 AM时解决的,并在5.5.1版本中实现,但是这是在8/9/15上的5.6α释放之前,所以这解释了为什么在您的版本中还没有修复它。
https://stackoverflow.com/questions/33014413
复制相似问题