QT MySQL无法打开数据库
收藏

嗨2,
有人知道这个密码有什么问题吗?
我想用Linux Ubuntu中的Qt程序连接MySQL数据库。
我对mysql使用XAMPP。我已经确认了名称、pass、port和数据库名称都是正确的。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:无法连接”,“无法通过socket'/var/run/mysqld/mysqld.sock'(2)”连接到本地MySQL服务器)
有人遇到过同样的问题吗?


最佳答案:

我不知道为什么,但当我把这条线改成

db.setHostName("localhost");

进入之内
db.setHostName("127.0.0.1");

它可以正常连接。
有人能解释一下为什么它能和127.0.0.1一起工作,但不能和localhost一起工作。。。?
我在PHPmyadmin中配置了这两个。

公众号