根据网上攻略,安装mariadb数据库,并且顺利创建数据表。
但是使用QT小程序访问时,总是报错*driver not loaded*。经过查询说是mysql的驱动没安装。于是各种安装。总是不成功。
最好在一个帖子中,https://www.bbsmax.com/A/mo5keYYKzw/。。。中发现。。
如下所述:
Linux平台下解决Qt5连接mysql数据库的问题:输入sudo apt-get install libqt5sql5-mysql解决,这种方法只能解决Qt是用sudo apt-get install qt-sdk命令装的低版本的Qt5(如5.2.x)缺少MySQL驱动问题,如果你的Qt5版本为5.7.X,那么就不能用这种方法解决,
这个针对的时Qt5.并且得时低版本。我用的qtcreator恰好时 qtcreator4.2.0 。。对应的QT是5.7.1.结果安装之后,竟然可以了。lucky。。。
另外 mariadb 数据库安装之后,默认时root账户 并且没有密码。
CREATE USER 'pmauser'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'pmauser'@'%' WITH GRANT OPTION;
用上面两句,创建了一个用户pmauser ,密码时123456.
这样就可以在code中,访问该数据库了。
code如下:
void MainWindow::on_pushButton_clicked(){ //link with database.
QSqlDatabase db( QSqlDatabase::addDatabase( "QMYSQL" ) );
db.setHostName("localhost");
db.setDatabaseName("mysql");
db.setUserName("pmauser");
db.setPassword("123456");
if(!db.open())//测试数据库是否链接成功
{
QMessageBox::critical(0, QObject::tr("Databse Error"), db.lastError().text());
qDebug()<<db.lastError()<<endl;
}
else
{
qDebug()<<"Ok"<<endl;
}
QSqlQuery query;
QString sql="select * from user_info;";
query.exec(sql);
while(query.next())
{
qDebug()<<query.value(0).toString()<<query.value(1).toString()<<query.value(2).toString();
}
query.clear();
}
,就这样,可以访问我创建的数据库 mysql。里面的表 user_info。中的信息了。