MySql8.0 + Qt 对数据库操作 - 初窥篇1

一、开发背景

        32 位程序连接 64 位的数据库实例

二、开发环境

  QtCreator4.8.2 + Qt5.12.2 + MySql8.0.33

三、实现步骤

  1、测试驱动代码 + 测试结果

int main(int argc, char *argv[])
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");    // 可以是本机 localhost 也可以是外网网址
    db.setDatabaseName("mysql");    // 数据库名
    db.setUserName("root");         // 用户名
    db.setPassword("123");          // 用户密码
    
    /* 连接数据库 */
    if (!db.open())
    {
        qDebug() << "Failed to connect to the database:";
        qDebug() << db.lastError().text();
        return -1;
    }
    
    /* 遍历数据库的一个数据表 */
    QSqlQuery query;
    if (query.exec("SELECT * FROM  user"))
    {
        while (query.next()) 
        {
            QString column1 = query.value(0).toString();
            QString column2 = query.value(1).toString();
            // ...
            qDebug() << column1 << column2;
        }
    }
    else
    {
        qDebug() << "Failed to execute SELECT query:";
        qDebug() << query.lastError().text();
    }
    
    /* 断开数据库 */
    db.close();
    return 0;
}

MySql8.0 + Qt 对数据库操作 - 初窥篇1_第1张图片

  2、遇到问题

             "SSL connection error: unknown error number QMYSQL: Unable to connect"

     编译库不支持SSL,需要关闭数据库的 SSL功能 

     解决方法:在数据库的 my.ini 配置文件中的 [mysqld] 后面添加 skip_ssl,即跳过 ssl 功能

     注意:如果更改后出现终端无法登录的问题,重置密码,操作如下

            参考链接:https://www.cnblogs.com/zhurong/p/9898675.html

   (1)修改 my.ini 文件先登录进去。

   (2)ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;   #修改加密规则 

   (3)ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';   #更新一下用户的密码 

   (4)FLUSH PRIVILEGES;   #刷新权限 

   (5)alter user 'root'@'localhost' identified by 'password';

你可能感兴趣的:(Qt,MySql,qt,mysql)