我正在尝试连接到本地MySQL服务器,但无法找到如何选择QSqlDatabase是否应通过套接字或端口连接。 Qt是版本4.6.3。我的简单测试代码如下:
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("rem");
db.setUserName("test");
db.setPassword("test");
if (!db.open()) {
qDebug() << db.lastError();
}
这给了我:
QSqlError(2002, "QMYSQL: Unable to connect",
"Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)")
正如您所看到的,它希望使用我不想要的默认套接字进行连接。
我找到db.setConnectOptions("UNIX_SOCKET=blabla")
,您可以使用它设置套接字。不幸的是我无法弄清楚如何取消它。
答案 0 :(得分:3)
改为使用db.setHostName("127.0.0.1");
。