QT mysql无法打开数据库

时间:2019-02-19 11:09:33

标签: mysql linux qt xampp

Hi2,

有人知道这段代码有什么问题吗?

我想将MySQL数据库与Linux Ubuntu中的Qt程序连接。
我将XAMPP用于mysql。我确保名称,传递,端口,数据库名称都可以。并且xampp中的mysql正在启动。

但是,它只是保持不打开。当我在Windows中尝试相同的代码时,效果很好

void MainWindow::CreateDatabaseConnection()
{

  QSqlDatabase db;
  db = QSqlDatabase::addDatabase("QMYSQL");
  db.setHostName("localhost");
  db.setUserName("root");
  db.setPassword("");
  db.setPort(3306);
  db.setDatabaseName("myDatabase");

  //test connection
  if(db.open())
      qDebug()<<"database connected ";
  else
      qDebug()<<"database failed to connect ";

  qDebug() << db.lastError();
}

好的,我添加了“ db.lastError”, 控制台输出现在显示:

数据库连接失败 QSqlError(“ 2002”,“ QMYSQL:无法连接”,“无法通过套接字'/var/run/mysqld/mysqld.sock'(2)连接到本地MySQL服务器”)


有人遇到过同样的问题吗?

1 个答案:

答案 0 :(得分:1)

我不知道为什么,但是我将这一行更改为

db.setHostName("localhost");

进入

db.setHostName("127.0.0.1");

它可以正确连接。
有人可以解释一下为什么它可以与127.0.0.1一起使用但不能与localhost ...一起使用吗?
我都在PHPmyadmin中对其进行了配置。