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服务器”)
有人遇到过同样的问题吗?
答案 0 :(得分:1)
我不知道为什么,但是我将这一行更改为
db.setHostName("localhost");
进入
db.setHostName("127.0.0.1");
它可以正确连接。
有人可以解释一下为什么它可以与127.0.0.1一起使用但不能与localhost ...一起使用吗?
我都在PHPmyadmin中对其进行了配置。