如何使用TCP连接QSqlDatabase? (Qt的MySQL驱动程序)

时间:2010-09-13 09:10:53

标签: qt

我正在尝试连接到本地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"),您可以使用它设置套接字。不幸的是我无法弄清楚如何取消它。

1 个答案:

答案 0 :(得分:3)

改为使用db.setHostName("127.0.0.1");