QT mysql не открывает базу данных - PullRequest
0 голосов
/ 19 февраля 2019

Hi2,

Кто-нибудь знает, что не так с этим кодом?

Я хочу соединить базу данных MySQL с программой Qt в Linux Ubuntu.
Я использую XAMPP для MySQL.Я должен убедиться, что имя, пароль, порт, имя базы данных в порядке.И mysql в xampp запускается.

Однако, он просто удерживает не открывающимся .Когда я попробовал тот же код в 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: невозможно подключиться», «Не удается подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld.sock' (2)")


Имеетекто-нибудь сталкивался с такой же проблемой?

1 Ответ

0 голосов
/ 26 февраля 2019

Я не знаю почему, но после того, как я изменил эту строку на

db.setHostName("localhost");

на

db.setHostName("127.0.0.1");

Он может подключиться правильно.
Может кто-нибудь объяснить, почему это работает с 127.0.0.1, но не с localhost ...?
У меня оба настроены в PHPmyadmin.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...